Sha256: 281b4644bad2f0d606badf0d26193661fd1a8596b7dd77fae3e177544c920e10

Contents?: true

Size: 907 Bytes

Versions: 1

Compression:

Stored size: 907 Bytes

Contents

module Stack
  class Runner
    attr_accessor :configuration
    attr_accessor :command
    attr_accessor :arguments
    attr_accessor :generator
    
    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
      @generator = Stack::Generator.new
      @generator.transform!
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stack-0.0.3 lib/stack/runner.rb