ActiveSupportを読む: core_ext/array/access.rb

こんにちは、鈴木です。

 

Ruby on Rails の縁の下の力持ちといえば ActiveSupport です。

普段から「便利だなぁ」と思いながら使っているものの、いくつかの良く使うメソッドしか知りません。

ということで、ActiveSupport のソースコードを読んで、しっかり学びたいと思います。

今回は core_ext/array/access.rb を読みます。

 

Array#from(position)

このメソッドは、配列から指定したインデックス以降の要素を取り出します。

実装は以下のようになっています。

Array#[](position, length) はインデックスが position の要素から length 個を取り出します。

実際に動かしてみると、以下のようになります。

 

Array#to(position)

Array#to(position) は Array#from(position) の対となるメソッドです。

配列の先頭からインデックスが position+1 までの要素を取り出します。

実装は以下のようになっています。

Array#first(length) は配列の先頭から length 要素を取り出すメソッドです。Array#first(length) を利用して「先頭から position+1 までの要素を取り出す」という処理を実現しています。

動かしてみると、以下のようになります。

 

Array#second, third, fourth, fifth, forty_two

これらのメソッドは、配列の N 番目の要素を取得するメソッドです。

例えば、Array#second は 2 番目の要素、Array#third であれば 3 番目の要素を返します。

2 番目(second)、3 番目(third)、4 番目(fourth)、5 番目(fifth)、の次が 42 番目(forty_two)であるのは、reddit というサービスで使われているからだそうです。

動かしてみると、以下のようになります。

今後は ActiveSupport の他の機能のソースも読んでみようと思います。

 

Comments are closed, but you can leave a trackback: Trackback URL.