@Konboi memo

主に技術に関してつらつらと。

ruby

rerunが便利

sinatraとかのrackアプリを作ってる時に編集したら自動で再起動して欲しいときがよくある。 plackup コマンドはデフォルトで-rの再起動オプションが付いていて最高!! しかし! rackupはついていない。 なのでそんなときにオススメなのがrerun。 gem install r…

sinatra で response body の JSONをparseする

JSON.parse(resposen.body.read) readを付けなくて、parse出来ずに嵌ったのでメモ。 Sinatra: Up and Running作者: Alan Harris,Konstantin Haase出版社/メーカー: O'Reilly Media発売日: 2011/11/21メディア: Kindle版この商品を含むブログを見る

標準出力を出力しつつファイルにも出力する

移植してるgemで表題のことを実現したかった。 色々調べてみたけど、実現したいことをするにはだいぶ古いきじだけれとこちらのページが参考になった。 def std_out log_fh = self.log_fh std_out = Object.new std_out.instance_eval{@ofile=log_fh} class <

.capをruby modeで開きたい

capistranoが3系になってタスク用のファイルの拡張子が.capになった。 .capファイル開くとインデントとか全然してくれないので、どうしたものかと思ってしらべたら ~/.vimrc に au BufNewFile,BufRead *.cap setf ruby を追記したらいけた ついでだから au Buf…

Rubyの配列でlimit使えない

Rails使ってるとlimitが使えないとき ?! ってなるw かわりに take か first でいける irb(main):003:0> a = [1,2,3,4,5] => [1, 2, 3, 4, 5] irb(main):004:0> a.take(3) => [1, 2, 3] irb(main):005:0> a.first(3) => [1, 2, 3] よい。

はてブのホットエントリー記事をkindleで読みたい

はじめに 最近は、本を読むのには kindle paperwhite を使って読んでる。 Kindle Paperwhite(ニューモデル)出版社/メーカー: Amazon発売日: 2013/10/22メディア: エレクトロニクスこの商品を含むブログ (61件) を見る 軽いし、まるで本を読んでるような感じな…

sinatra で rails new 的な物を調べてみた

新しいweb app をつくろうと思った時に railsでやるには大げさだけど、 sinatra だと色々用意するのが面倒なので sinatra の rails new 的なのないか調べてみた sinagen sinatra-gen snfn hazel singen 最終更新日は8ヶ月前 使い方 sinatra-gen [appname] [op…

RailsでArrayをそのままDBに保存する

保存方法 serialize :array_category 保存したいcolumnにserializeをつける。 以上 たのしいRuby 第4版作者: 高橋征義,後藤裕蔵,まつもとゆきひろ出版社/メーカー: ソフトバンククリエイティブ発売日: 2013/06/04メディア: 単行本この商品を含むブログ (22件)…

Rubyの配列にblockを渡してsortをかける

topics.sort_by {|topic| -topic[:id]} ちなみに マイナスを付けないとASC つけると DESC で sort がかかる。 こんな感じで、 配列に対してblockを渡してsortできるらしいのを今日知った。 ドキュメント 今年は、RailsというよりもRubyのまだ知らない、使ったこと…

Rails x unicorn のアプリをサブディレクトリで動かす

はじめに 1ドメインで複数のサービスを動かすには サブドメインを使う サブディレクトリでサービスを動かす の 2種類があると思います。 今回は Rails x unicorn x nginx で動かす場合の設定の紹介をします。 Railsの設定 Railsで設定するファイルは config.…

『メタプログラミングRuby 』を読んで

本日、積んであった『メタプログラミングRuby』を読み終えました。 はじめに 自分の場合Ruby から始まってRailsを使い始めたというよりも、 Railsから入ってRailsのお作法等を学びながら、Rubyのことを徐々に知り始めたという感じです。 自分のような境遇の…

はじめてのactive_admin 【カスタマイズ編 その1】

はじめに パーフェクトRuby (PERFECT SERIES 6)posted with amazlet at 13.11.27Rubyサポーターズ すがわら まさのり 寺田 玄太郎 三村 益隆 近藤 宇智朗 橋立 友宏 関口 亮一 技術評論社 売り上げランキング: 13,335Amazon.co.jpで詳細を見る はじめての ac…

Rubyで文字列からTime型または DateTime型に変換する

API等で { “start_at”: “2013-11-22 17:30:00 +0900”, “end_at”: “2013-11-25 17:30:00 +0900” } こんな感じで時間が文字列で送られてきた時に Time型、または DateTime型 start_at と end_at で計算をしたいときには parse メソッドを使って変換ができます…

【使ってみた】gem gmail

はじめに 先日、定期的にメールを送る必要があったので自分のカレンダーに予定をいれて手動でやるとハゲそうなので、何かいいgemはないかと探してみました。 今回は、この gem: gmail を使うとにしました。 こちらを選んだ理由としては メールを送信するアカ…

test用のデータをどうするか

はじめに 最近新しいプロジェクトがスタートしました。 設計はほぼほぼ終わりました。そこまで規模は大きくありません。 今、悩んでいるのがtest時のデータをどうするか。 テスト前に rake db:seed RAILS_ENV=test を実行して事前に適度なダミーデータを入れ…

CentOSでRMagickをつかう。

毎度、毎度 RMagick をインストールするときにはまってググるのでメモ。 yum install ImageMagick libpng libjpeg giflib ImageMagick-devel とりあえず、これしてとけばだいたい行く。 画像の拡張子を増やしたい場合は libxxx をインストールすればいける。…

facebookイベントから参加者のGoogleSpreadSheetを作る

はじめに 先日、会社の同期がイベントの幹事をやってくれました。 (イベントの様子) 出席確認はfacebook。 出席確認とか出席者への連絡はすごく便利なんだけどお金の徴収とかの管理はspreadsheetでやってた。 その時、 「参加者をまとめてスプレッドシートに…

deviseでログインにemailではなくusernameを使用する

はじめに deviseはデフォルトで認証にemailを使うようになっているので、それをusernameに変更してみる 今回は管理画面用に作成したAdminUserでその修正を行なってみた。 devise で ログインにusernameを使用する カラムを追加する username のカラムを追加…

railsのformのselectタグで選択された状態にする。

はじめに メンバーの選択とかで、いちいち select タグつくってられないので、 railsのhelplerが用意してる options_from_collection_for_select の恩恵に預かってた。 解決方法 ただ、どうやって選択した状態にするかよくわかんなくて コード追ってみたらこ…

Railsのバリデーションで少しハマった。

はじめに Railsのバリデーションで少しハマったのでメモ。 今回ハマったのは、入力する数字の範囲でバリデーションをかけたいとき。 内容 例えばx座標で、xには0から400まで値を持たせたい。 ハマった方法 validates :x, :length => { :maximum => 400 } 解…

thorを使ってネタコマンドを作ってみた

はじめに 以前Rubyバッチプログラミング勉強会でthorという便利なgemを教えていただきました。 ( Rubyバッチプログラミング勉強会に関してはこちら ) thorを使って勉強がてらネタコマンドを以前作ってみたので、それをブログに まとめておきます。 ネタコマ…

kaminari が便利すぎる ~ 配列に対してページャーを実装する ~

はじめに 以前 railsのページャーで有名なkaminariの記事を書いた。 普通に使っている分にはなんら問題なく使えていたが、ちとModelだけではなく、データを整形したものに対してページャーを使いたかった。 自前で実装しようと思っていたところ、kaminariの…

大江戸Ruby会議 #03 に行ってきた!

はじてめRubyの勉強会に参加してきた。 結論からいうと、参加して本当によかったです。 Asakusa.rb の方々をはじめ大江戸Ruby会議関係者の方々、お疲れ様でしたm( )m 普段つかっているRuby, Rails のコミッタがあんなにも... 浅草はなんてすごい場所なんだ!…

rubyのワンライナーで置換したのでメモ。

プロジェクトが動くディレクトリが / っていうルートディレクトリじゃなくて、 /hoge っていうサブディレクトリに変更になったので、画像のパスを書き換えるのが面倒なのでコマンドで置換した。 いつもはperlでやってたけど、今回のプロジェクトrubyだからru…

RailsでPCとSPでテンプレートを分ける

はじめに 最近のプロジェクトでは、twitter bootstrap などのようにPCとスマフォを1ソースで対応させる場合もある。 しかし、難易度も高く複雑なレイアウトの場合にはなかなか難しい。 そこで、よくある解決策としては、 PCとSPでテンプレートファイルを分け…

拡張子が .html.erb 以外にも rhtml-mode を適用させる

はじめに Railsで組み込みをやっていると、<%= %> で囲んでいるところを強調してほしい。 自分は emacs-rails に含まれている rhtml-mode を使用している。 普通に使っている文には不自由なく使えているので結構満足している。 ただ、1つだけ使っていて不自…

はじめてqiitaに投稿してみた。

投稿してみた。 はてなブログもMarkdown形式で書いてるからそこまで違和感なかった。逆に、ブログに書くのとqiitaに書くのとどうかき分けたらいいか迷う。ちなみに、このブログ記事も初めてスマフォアプリから書いてる。今日は初めてずくしや。あ、ちなみに…

taskの中で upload しようとしたらハマった。

はじめに 前回の記事からだいぶ時間が経ってしまった。 最近はもっぱら Rails でWebアプリをつくってます。 今日は capistrano でdeployしようとしてハマったことがあったのでメモっておきます。 構成 今回の構成は、ステージサーバーが1台, Webサーバーが2…

Active Record でよしなにとりたい

以下のような Person と Unko tableがあったとする Persons id name height weight 1 たろう 172 68 2 さとし 178 78 Unkos id weight length person_id 1 10 10 1 2 5 8 1 これらの情報をSQL文で書くと SELECT * FROM persons INNER JOIN ON unkos ON perso…

rails generate controller で 指定ディレクトリ以下にコントローラを作成する

メモ的な意味で。 普通に rails generate controller hoge ってやると app/ 直下に hoge_controller.rb が生成される。 そこでいい場合は別にいいんだけれど、 api/ 以下とか admin/ 以下に作りたい時は rails generate admin::hoge みたいに :: でディレク…