После поста пользователя aovoe захотелось что-то аналогичное для ruby. Наспех был накидан код, который умеет искать по селекторам без аргументов (например «hello».upcase).
Примеры:
MethodFinder может учитывать и несколько результатов, например:
Update:
Теперь и по селекторам с аргументами
Сорцы на гитхабе: github.com/mholub/method_finder/tree/master
Update:
Сие есть велосипед, ибо уже куча народа написала аналоги, например, andy@nobugs.org
www.nobugs.org/developer/ruby/method_finder.html
Улучшенная версия:
redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html
Примеры:
irb(main):001:0> "hello".suggest_method("HELLO")
=> ["upcase", "swapcase"]
irb(main):002:0> "hello".suggest_method("Hello")
=> "capitalize"
irb(main):007:0> Date.parse('13 Sep 2009').suggest_method(256) # Programmer's Day
=> "yday"
irb(main):009:0> 1.01.suggest_method(1)
=> ["prec_i", "round", "truncate", "to_i", "to_int", "floor"]
irb(main):010:0> 1.01.suggest_method(2)
=> "ceil"
MethodFinder может учитывать и несколько результатов, например:
irb(main):011:0> MethodFinder.suggest_method(-1.01 => -2, 1.01 => 1) => "floor" irb(main):001:0> MethodFinder.suggest_method(-1.01 => -1, 1.01 => 1) => ["to_int", "round", "to_i", "prec_i", "truncate"]
Update:
Теперь и по селекторам с аргументами
irb(main):005:0> "hello ".suggest_method("hello world", "world")
=> ["+", "concat", "<<"]
irb(main):003:0> MethodFinder.suggest_method([2, 4, 2], [[2], [2, 2], 2])
./method_finder.rb:20: warning: do not use Fixnums as Symbols
=> "*"
Сорцы на гитхабе: github.com/mholub/method_finder/tree/master
Update:
Сие есть велосипед, ибо уже куча народа написала аналоги, например, andy@nobugs.org
www.nobugs.org/developer/ruby/method_finder.html
Улучшенная версия:
redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html
