Sha256: c33a9a7252baf4be8c94040340fdafbb1d78c5c5b426093959f4a3f95cff0e2a

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require_relative 'util'

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

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

  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

1 entries across 1 versions & 1 rubygems

Version Path
i18n_flow-0.1.0 lib/i18n_flow/cli.rb