Sha256: 9102569a724c64bd116835955d2389ce8c43866cdefcdf9008776ee7469f263e

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

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 :s, :oneline, 'Display steps in plain text (short mode)'
        on :v, :version, 'Print this version' do
          puts TableBeet::VERSION
          exit
        end
      end

      exit if opts.present?(:help)

      opts.to_hash.tap do |h|
        h.delete(:help)
        h.delete(:version)

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
table_beet2-0.0.5 lib/table_beet/cli.rb
table_beet2-0.0.4 lib/table_beet/cli.rb