Arrayのsort_by
メソッドの機能を使用するメソッドを作成しようとしています。Rubyをオーバーライドする方法sort_by
私はこのようなメソッドを呼び出すことができるようにしたい私は、このデータを持っている
data_array = [{project: 'proj', version: '1.1'}, {project: 'proj2', version: '1.11'}, {project: 'proj3', version: '1.2'}]
を想像してみて:
data_array.natural_sort_by{|x| x[:version] }
このような何かを達成するであろうが起こる実際の呼び出し:
data_array.sort_by{|x| MyModule.naturalize_str(x[:version]) }
を
私の現在の勤務していないコード:
Array.module_eval do
def natural_sort_by(&block)
sort_by{|x| Rearmed.naturalize_str(eval(block))}
end
end
これを達成する方法がわかりません。
あなたは[列挙](http://ruby-doc.org/core-2.3.1/Enumerable.html)モジュールについて知っていますか? –
はい、あります。私は最初に主要な問題を解決する必要がありました。私はそれがすべてのEnumerableに適用されることはわからないが、おそらくそこに着くだろう。 –