Class: Ace::Support::Cli::Command

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/support/cli/command.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.descriptionObject (readonly)

Returns the value of attribute description.



11
12
13
# File 'lib/ace/support/cli/command.rb', line 11

def description
  @description
end

Class Method Details

.argument(name, type: :string, required: true, desc: "") ⇒ Object



39
40
41
42
# File 'lib/ace/support/cli/command.rb', line 39

def argument(name, type: :string, required: true, desc: "")
  @arguments ||= []
  @arguments << Models::Argument.new(name: name, type: type, required: required, desc: desc)
end

.argumentsObject



53
54
55
# File 'lib/ace/support/cli/command.rb', line 53

def arguments
  @arguments ||= []
end

.desc(text) ⇒ Object



21
22
23
# File 'lib/ace/support/cli/command.rb', line 21

def desc(text)
  @description = text
end

.example(lines) ⇒ Object



44
45
46
47
# File 'lib/ace/support/cli/command.rb', line 44

def example(lines)
  @examples ||= []
  @examples.concat(Array(lines).map(&:to_s))
end

.examplesObject



57
58
59
# File 'lib/ace/support/cli/command.rb', line 57

def examples
  @examples ||= []
end

.inherited(subclass) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/ace/support/cli/command.rb', line 13

def inherited(subclass)
  super
  subclass.instance_variable_set(:@description, description)
  subclass.instance_variable_set(:@options, options.dup)
  subclass.instance_variable_set(:@arguments, arguments.dup)
  subclass.instance_variable_set(:@examples, examples.dup)
end

.option(name, type: :string, default: nil, desc: "", aliases: [], values: nil, required: false, repeat: false, **_extra) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ace/support/cli/command.rb', line 25

def option(name, type: :string, default: nil, desc: "", aliases: [], values: nil, required: false, repeat: false, **_extra)
  @options ||= []
  @options << Models::Option.new(
    name: name,
    type: type,
    default: default,
    desc: desc,
    aliases: aliases,
    values: values,
    required: required,
    repeat: repeat
  )
end

.optionsObject



49
50
51
# File 'lib/ace/support/cli/command.rb', line 49

def options
  @options ||= []
end

Instance Method Details

#call(**_params) ⇒ Object

Raises:

  • (NotImplementedError)


62
63
64
# File 'lib/ace/support/cli/command.rb', line 62

def call(**_params)
  raise NotImplementedError, "#{self.class} must implement #call"
end