# File lib/main/program/class_methods.rb, line 43 def initialize(&block) @block = block || lambda{} end
# File lib/main/program/class_methods.rb, line 51 def build(*args, &block) argv = (args.shift || ARGV).map{|arg| arg.dup} env = (args.shift || ENV).to_hash.dup opts = (args.shift || {}).to_hash.dup factory = self program = Class.new(Program) program.factory = factory program.argv = argv program.env = env program.opts = opts program.module_eval(&factory) program.module_eval do dynamically_extend_via_commandline_modes! program.set_default_options! define_method(:run, &block) if block wrap_run! end program end
# File lib/main/program/class_methods.rb, line 47 def to_proc @block end