Class: Licensed::Commands::Command

Inherits:
Object
  • Object
show all
Defined in:
lib/licensed/commands/command.rb

Direct Known Subclasses

Cache, List, Status

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config:, reporter:) ⇒ Command

Returns a new instance of Command.



9
10
11
12
# File 'lib/licensed/commands/command.rb', line 9

def initialize(config:, reporter:)
  @config = config
  @reporter = reporter
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



5
6
7
# File 'lib/licensed/commands/command.rb', line 5

def config
  @config
end

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/licensed/commands/command.rb', line 7

def options
  @options
end

#reporterObject (readonly)

Returns the value of attribute reporter.



6
7
8
# File 'lib/licensed/commands/command.rb', line 6

def reporter
  @reporter
end

Instance Method Details

#run(**options) ⇒ Object

Run the command

options - Options to run the command with

Returns whether the command was a success



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/licensed/commands/command.rb', line 19

def run(**options)
  @options = options
  begin
    result = reporter.report_run(self) do
      config.apps.sort_by { |app| app["name"] }
                 .map { |app| run_app(app) }
                 .all?
    end
  ensure
    @options = nil
  end

  result
end