What is it, naokirin?

kaminari に入門して、ページネーションしよう

github.com kaminari といえば、Rails などでページネーションするための gem です。 今回は Rails に導入してみて、ページネーションしてみることにします。 今回は Rails 5.2, kaminari 1.1.1 で行っています。 kaminari をインストールする 確認用に User…

Ruby on Rails の has_secure_password のコードを読んでみる

最近は個人アプリ開発だと OpenID Connect などで済ませてしまうかもしれませんが、Ruby on Railsで直接パスワードを記録する際にデフォルトで利用できる has_secure_password メソッドの実装を読んでみました。 読んだのは Rails v5.2.3 になります。 has_s…

ActiveModel::Model で DBに依存しないモデルを作ろう

もう使い古されたネタという感じですが、Railsを使わずとも ActiveSupport だけを利用してRubyのコードを書くことは結構多いのではないでしょうか。 blank? , present? であったり、 pluralize や try 、 1.year.ago のような呼び出しなど、ヘルパーメソッド…

Ruby合宿 2011に参加してきました!

(今回は本のような形で書いていきます。理由?そうした方が楽しそうだから。) まえがき 参加してきましたよ。「Ruby?スクリプト言語?RubyってRuby on Railsでよく使う言語でしょ?Webアプリケーション作る気ないし、今はやらないかなー」という発言をした…

RubyのModule#define_methodとObject#sendを使ってみる

class Foo def self.createMethod name define_method name do puts name.to_s end end def self.createMethod2 name define_method name do |text| puts name.to_s + text end end createMethod :yes createMethod :no createMethod2 :this end foo = Foo.n…

Rubyのdup、cloneの動作の差異

RubyのObjectクラスに定義されている、dupとcloneという二つのオブジェクトのコピー用のメソッドの動作について確認してみます。バージョンはRuby1.9.2です。 a = Object.new a.freeze # freeze a1 = a.clone a2 = a.dup puts a1.frozen? puts a2.frozen? b …

RubyのMixinをちょっとかじってみた

RubyのMixinがどんな感じかな、ということで試してみた。 # モジュールの定義 module Mod def normal str return "#{self.func str}" end def exclamation str return "#{self.func str}!" end def period str return "#{self.func str}." end end class Foo…