module Stack class Runner attr_accessor :configuration attr_accessor :command attr_accessor :arguments def initialize(argv) @argv = argv @options = { } parse! end # Parse options, command and arguments def parse! options = Stack::parse! @argv @configuration = Stack::Configuration.new(options) @command = @argv.shift @arguments = @argv end # Run stack! def run! if @command.nil? @command = "generate" end if Stack::COMMANDS.include?(@command) run_command else abort "Unknown command: #{@command}. Use one of #{Stack::COMMANDS.join(", ")}." end end # Runs the specified command def run_command Stack::Generator.new end end end