Call a Ruby function from the command line

First the name of the class needs to start with a capital letter, and since you really want to use a static method, the function name definition needs to start with self..

class TestClass
    def self.test_function(someVar)
        puts "I got the following variable: " + someVar
    end
end

Then to invoke that from the command line you can do:

ruby -r "./test.rb" -e "TestClass.test_function 'hi'"

If you instead had test_function as an instance method, you’d have:

class TestClass
    def test_function(someVar)
        puts "I got the following variable: " + someVar
    end
end

then you’d invoke it with:

ruby -r "./test.rb" -e "TestClass.new.test_function 'hi'"

Leave a Comment