Sha256: fc9c4b2714f99a769b3bfb275e0886fdd30de5154b3796e2fadb7ed3233bb391

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

require_relative 'util'

class I18nFlow::CLI
  require_relative 'cli/copy_command'
  require_relative 'cli/format_command'
  require_relative 'cli/help_command'
  require_relative 'cli/lint_command'
  require_relative 'cli/read_config_command'
  require_relative 'cli/search_command'
  require_relative 'cli/split_command'
  require_relative 'cli/version_command'

  COMMANDS = {
    'copy'        => CopyCommand,
    'format'      => FormatCommand,
    'help'        => HelpCommand,
    'lint'        => LintCommand,
    'read_config' => ReadConfigCommand,
    'search'      => SearchCommand,
    'split'       => SplitCommand,
    'version'     => VersionCommand,
  }

  attr_reader :args
  attr_reader :command
  attr_reader :global_options

  def initialize(args)
    @global_options = I18nFlow::Util.parse_options(args)
    @command, *@args = args
  end

  def run
    if global_options['v'] || global_options['version']
      @command = 'version'
    end
    if global_options['h']
      @command = 'help'
    end

    command_class = COMMANDS[command] || COMMANDS['help']
    command_class.new(args).invoke!
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
i18n_flow-0.2.3 lib/i18n_flow/cli.rb
i18n_flow-0.2.2 lib/i18n_flow/cli.rb
i18n_flow-0.2.1 lib/i18n_flow/cli.rb
i18n_flow-0.2.0 lib/i18n_flow/cli.rb