Back

如何输入一段ruby代码然后执行它?(how to input a string of ruby code and execute the code)

发布时间: 2014-01-05 01:02:00

there's a case that I have to input a string of ruby from console(or from even the web page) then execute it. here is the example: (如题。)

class UrlGenerator
    attr_accessor :urls
    def generate
        @urls = yield
    end 
end

puts "== input a block"
# input:  base_url = "/base" ;  switches = [1,2];     results = [] ;  switches.each { |i|   results << "#{base_url}/#{i}"  };  results;
block_string = gets
puts "===== block_string: #{block_string}"
the_block = lambda{eval(block_string)}
puts "== the block: #{the_block}"
a = UrlGenerator.new
a.generate &the_block
puts "==== urls: #{a.urls.inspect}"

refer to: http://siwei.me/blog/posts/block-basic-in-ruby, http://siwei.me/blog/posts/the-return-in-ruby

Back