Classes and Modules
Public Class methods
processor(klass, &block)
Install a Rodish processor in the given class. This extends the class with Rodish::Processor, and uses the block to configure the processor using Rodish::DSL.
[show source]
# File lib/rodish.rb 10 def self.processor(klass, &block) 11 klass.extend(Processor) 12 13 dsl_class = Class.new(DSL) 14 klass.const_set(:DSL, dsl_class) 15 16 command_class = Class.new(Command) 17 dsl_class.const_set(:Command, command_class) 18 19 option_parser_class = Class.new(OptionParser) 20 dsl_class.const_set(:OptionParser, option_parser_class) 21 22 option_parser = option_parser_class.new 23 option_parser.set_banner("") 24 option_parser.freeze 25 command_class.const_set(:DEFAULT_OPTION_PARSER, option_parser) 26 27 klass.instance_variable_set(:@command, dsl_class.command([].freeze, &block)) 28 klass 29 end