Sha256: d4aa8ee07d715f20535d3615cf35331b9e5ca8d2e6703a2dc23befdbfccdd328

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

require 'table_beet/version'
require 'table_beet/runner'
require 'slop'

module TableBeet
  class CLI
    def initialize(opts = nil)
      @runner = TableBeet::Runner.new(opts || parse_options)
    end

    def run
      @runner.run
    end

    def self.run(opts = nil)
      TableBeet::CLI.new(opts).run
    end

    private

      def parse_options
        opts = Slop.parse(help: true, optional_arguments: true) do
          banner 'Usage: table_beet [options]'
          on :output=, 'Directory to output (default: ./stepdoc)'
          on :path=,   'Directory that contains step file. (default: ./spec)'
          on :suffix=, 'Suffix of step file  (default: _steps.rb)'
          on :n, :textmode, 'Display steps in plain text (No generate HTML)'
          on :v, :version, 'Print this version' do
            puts TableBeet::VERSION
            exit
          end
        end

        exit if opts.present?(:help)

        h = opts.to_hash
        h.delete(:help)
        h.delete(:version)

        if opts.textmode?
          h[:format] = :text
        end

        h
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
table_beet-0.0.3 lib/table_beet/cli.rb
table_beet-0.0.2 lib/table_beet/cli.rb
table_beet-0.0.1 lib/table_beet/cli.rb