45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/main/program/class_methods.rb', line 45
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.evaluate(&factory)
program.module_eval do
program.factory = factory
program.argv = argv
program.env = env
program.opts = opts
dynamically_extend_via_commandline_modes!
program.set_default_options!
define_method(:run, &block) if block
wrap_run!
end
program
end
|