読者です 読者をやめる 読者になる 読者になる

Rails で動的配信するアクションを宣言的に指定する

やりたかったこと UserAgent に応じて動的配信したい PC だったら通常の "#{action_name}.html.erb" を render したい スマホだったら "mobile_#{action_name}.html.erb" を render したい 動的配信するアクションを宣言的に指定するだけで render する view…

Ruby における new のコスト

ttanimichi/bigquery-client を作っていて、ビックデータを扱う都合上、性能が気になった。クラスメソッドで済ませることもできるけど、できればインスタンスメソッドにしたい処理があって、インスタンスを new することがどれくらいのコストになるのか測っ…

Active Admin でダッシュボードを消す方法

Dashboard を menu から消して root を別の action に設定すればいい。 # app/admin/dashboard.rb ActiveAdmin.register_page "Dashboard" do menu false end # config/initializers/active_admin.rb ActiveAdmin.setup do |config| config.root_to = 'myite…

Rubyのスクリプトを計測する

性能測定系のツール類について調べたので結果をまとめた。 time まずはtimeコマンドで実行時間を計測してみる。 % time ruby target.rb ruby target.rb 174.91s user 0.97s system 98% cpu 2:58.53 total % \time ruby target.rb 186.63 real 181.51 user 1.…

prependされたときにクラスメソッドとインスタンスメソッドを同時に追加するパターン

Rails: includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン のprepend版がググってもあまり見当たらなかったのでメモしておきます。 ソースコード module M def self.prepended(base) class << base self.prepend(ClassMet…

エラトステネスの篩をRubyで実装する

エラトステネスの篩(エラトステネスのふるい)は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がある。 エラトステネスの篩 - Wikipedia アルゴリズム …

Chefでrbenvを使ってRubyをインストールする

Chefでrbenvを使ってRubyをインストールする方法のメモ。 関連記事 ChefとVagrantによる開発環境の構築 ChefでさくらVPSの環境構築を自動化する レシピの解説 今回は ChefとVagrantによる開発環境の構築 で作成したレシピを使って解説する。完成したレシピは…