3/23(水)に第18回ベイサイドRuby on Rails勉強会@マスマスに参加しました。今回は6名の参加でした。
挙がった話題などを覚えてる範囲でまとめておきます。
CompassでのCSSスプライト
Compassでは簡単にCSSスプライトが可能です。ただ、GIFは対応していなくて、PNGにしないといけません。
RailsGuidesの「Rails アプリケーションのデバッグ」
RailsGuidesのデバッグのセクションには、かなり便利なデバッグ方法がたくさん載っています。
ですが、このセクションは最近のスタンダードであるpryではなく、byebugをしています。
ただ、コマンド名などは違いますが、同じ使い方ができるため、一度読んでみるのをおすすめします。
たとえば、
1 2 3 4 5 6 7 8 9 10 |
(byebug) where --> #0 ArticlesController.index at /PathTo/project/test_app/app/controllers/articles_controller.rb:8 #1 ActionController::ImplicitRender.send_action(method#String, *args#Array) at /PathToGems/actionpack-5.0.0/lib/action_controller/metal/implicit_render.rb:4 #2 AbstractController::Base.process_action(action#NilClass, *args#Array) at /PathToGems/actionpack-5.0.0/lib/abstract_controller/base.rb:189 #3 ActionController::Rendering.process_action(action#NilClass, *args#NilClass) at /PathToGems/actionpack-5.0.0/lib/action_controller/metal/rendering.rb:10 ... |
where
で、backtraceを表示できます。呼び出してる元がわかります。
ここで、frame 2
などのようにすると、特定のコンテキストに移動できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
(byebug) frame 2 [184, 193] in /PathToGems/actionpack-5.0.0/lib/abstract_controller/base.rb 184: # is the intended way to override action dispatching. 185: # 186: # Notice that the first argument is the method to be dispatched 187: # which is *not* necessarily the same as the action name. 188: def process_action(method_name, *args) => 189: send_action(method_name, *args) 190: end 191: 192: # Actually call the method associated with the action. Override 193: # this method if you wish to change how action methods are called, (byebug) |
display
にて変数をウォッチしておくことができます。ステップ実行しながら、変更があった場合にすぐにわかります。
1 2 |
(byebug) display @articles 1: @articles = nil |
break
でブレークポイントを設定できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[4, 13] in /PathTo/project/app/controllers/articles_controller.rb 4: # GET /articles 5: # GET /articles.json 6: def index 7: @articles = Article.find_recent 8: => 9: respond_to do |format| 10: format.html # index.html.erb 11: format.json { render json: @articles } 12: end 13: end (byebug) break 11 Created breakpoint 1 at /PathTo/project/app/controllers/articles_controller.rb:11 |
これが非常に便利で、コードのいろんなところにbyebug
(pryでいうbinding.pry
)を書く必要がなくなります。これは、webrickを落とすまで有効になっています。
さらに、これが便利なのは、クラス名やファイル名と行数で指定できるので、GEMの中などにも設定することが可能です。
今までGemにわざわざbinding.pry
を書いて汚していました。
スポンサーリンク
Verilogという言語
デジタル回路の設計用の言語。これを焼く(コンパイルみたいな)ことで、物理的な回路ができるらしい。
さいごに
こんな感じで、Bayside Rails勉強会では、Rails以外の話題もたくさんでてきます。どなたでも参加可能です。
ご興味あるかたは、当ブログの問い合わせフォームから連絡いただければ次回のご案内をお送りさせていただきます。