Class: Usps::Imis::CommandLine::Interface

Inherits:
Object
  • Object
show all
Defined in:
lib/usps/imis/command_line/interface.rb

Overview

Command line interface for the Api

Constant Summary collapse

NAME =
'USPS iMIS API - Ruby'
RAW_HASH_RESPONSE_OPTIONS =

CLI options that indicate the response is a raw Hash rather than a Data object, and should not be simplified

%i[business_objects auth_token].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInterface

Returns a new instance of Interface.



26
27
28
29
30
31
32
33
# File 'lib/usps/imis/command_line/interface.rb', line 26

def initialize(**)
  @options = input_options.merge(**)
  options[:version] = true if default_options?

  configure! if options[:config]
  logging!
  @logger ||= Imis.logger('CommandLine')
end

Instance Attribute Details

#loggerObject (readonly)

Tagged logger



22
23
24
# File 'lib/usps/imis/command_line/interface.rb', line 22

def logger
  @logger
end

#optionsObject (readonly)

Options passed in from the command line



18
19
20
# File 'lib/usps/imis/command_line/interface.rb', line 18

def options
  @options
end

Class Method Details

.runObject



24
# File 'lib/usps/imis/command_line/interface.rb', line 24

def self.run(...) = new(...).run

Instance Method Details

#runObject



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/usps/imis/command_line/interface.rb', line 35

def run
  logger.info 'Running'
  logger.debug 'CLI Options:'
  logger.json(options.dup.tap { it[:token] = '[FILTERED]' if it[:token] })

  set_member

  result = simplify(perform!)

  output { result }

  result
end