Ruby method name abbreviated trick ... (plus the trick of the method name abbreviation)

Source: Internet
Author: User

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

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.