When I was talking to NS, he showed me a piece of code:
Night_stalker wrote
See a method shorthand trick
IRB Code
IRB (main):004:0> "Hello World"-SPL
=> ["Hello", "World"]
IRB (main):005:0> "Hi there Daniel". SP
= > ["Hi", "there", "Daniel"]
IRB (main):006:0> "Hi there Daniel". S
=> "ambigous abbreviation s-> Select, slice, sub!, squeeze, send, split,
size, strip, succ!, squeeze!, Sub, slice!, scan, sort, swapcase, swapcase!,
sum, Singleton_methods, SUCC, sort_by, strip! "
I was bored, replied that this is not difficult to achieve, on the imitation of the Code of the behavior of one out. But it was a simple thing I wrote wrong at first, depressed T t
Ruby Code
Class Object
def method_missing (name, *args, &block)
candidates = Methods.grep/^#{name}/raise
" Undefined method ' #{name} ' for #{self}:#{self.class} ' if Candidates.empty?
Raise "ambigous abbreviation #{name}-> #{candidates.join ', '}" unless candidates.one?
Method (Candidates.first). Call *args
End