Search code examples
rubydynamicmethodssend

Dynamic method calling in ruby through user input doesn't work


Hello I have the following simple piece of code

#! /usr/bin/ruby

input = gets.downcase.chomp.to_sym

send input

def abc

   puts "Hi"

end

When I run the script and type abc I get

test.rb:5:in `<main>': undefined method `abc' for main:Object (NoMethodError)

using ruby 1.9.1


Solution

  • Try this please:

    #! /usr/bin/ruby
    
    def abc
      puts "Hi"
    end
    
    input = gets.downcase.chomp.to_sym
    send input
    

    Hope the code makes sense.