Class: DevSystem::BaseGenerator

Inherits:
Generator show all
Defined in:
lib/dev_system/subsystems/generator/generators/base_generator.rb

Direct Known Subclasses

EnvfileGenerator, SimpleGenerator

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Liza::Controller

#`, `, attr_accessor, attr_reader, attr_writer, #attrs, box, #box, color, division, division!, division?, inherited, menv_accessor, menv_reader, menv_writer, on_connected, panel, #panel, plural, require, requirements, sh, #sh, singular, subsystem, subsystem!, subsystem?, subsystem_token, token

Methods inherited from Liza::Unit

_erbs_for, #add, add, cl, #cl, class_methods_defined, const_added, const_missing, constants_defined, define_error, descendants_select, division, erbs_available, erbs_defined, erbs_for, errors, #fetch, fetch, get, #get, instance_methods_defined, log, #log, log?, #log?, #log_array, log_array, log_hash, #log_hash, #log_level, log_level, #log_level?, log_level?, log_levels, #log_levels, #log_render_convert, #log_render_format, #log_render_in, #log_render_out, method_added, methods_defined, namespace, part, raise_error, #raise_error, reload!, #reload!, #render, #render!, #render_stack, renderable_formats_for, renderable_names, section, sections, #set, set, #settings, settings, singleton_method_added, sleep, #sleep, stick, #stick, sticks, #sticks, subclasses_select, subunits, system, #system, system?, test_class, time_diff, #time_diff

Instance Attribute Details

#menvObject (readonly) Also known as: env

Returns the value of attribute menv.



16
17
18
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 16

def menv
  @menv
end

Class Method Details

.call(menv) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 5

def self.call(menv)
  super
  
  generator = new
  menv[:generator] = generator
  menv[:command].menv[:generator] = generator
  generator.call menv
end

.default_argsObject



93
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 93

def self.default_args() = fetch(:default_args) { [] }

.default_booleansObject



95
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 95

def self.default_booleans() = fetch(:default_booleans) { {} }

.default_stringsObject



97
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 97

def self.default_strings() = fetch(:default_strings) { {} }

.get_generator_signaturesObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 71

def self.get_generator_signatures
  signatures = []
  ancestors_until(BaseGenerator).each do |c|
    signatures +=
      c.instance_methods_defined.select do |name|
        name.start_with? "call_"
      end.map do |name|
        {
          name: ( name.to_s.sub("call_", "").sub("default", "") ),
          description: "# no description",
        }
      end
  end
  signatures.uniq { _1[:name] }
end

.input_argsObject



123
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 123

def self.input_args() = fetch(:input_args) { {} }

.input_booleansObject



125
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 125

def self.input_booleans() = fetch(:input_booleans) { {} }

.input_stringsObject



127
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 127

def self.input_strings() = fetch(:input_strings) { {} }

.set_default_arg(index, value) ⇒ Object



99
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 99

def self.set_default_arg(index, value) = default_args[index] = value

.set_default_boolean(name, value) ⇒ Object



101
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 101

def self.set_default_boolean(name, value) = default_booleans[name] = value

.set_default_string(key, value) ⇒ Object



103
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 103

def self.set_default_string(key, value) = default_strings[key] = value

.set_input_arg(index, &block) ⇒ Object



129
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 129

def self.set_input_arg(index, &block) = input_args[index] = block

.set_input_boolean(name, &block) ⇒ Object



131
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 131

def self.set_input_boolean(name, &block) = input_booleans[name] = block

.set_input_string(key, &block) ⇒ Object



133
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 133

def self.set_input_string(key, &block) = input_strings[key] = block

Instance Method Details

#action_nameObject



57
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 57

def action_name()= menv[:generator_action]

#afterObject



51
52
53
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 51

def after
  #
end

#argsObject



61
62
63
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 61

def args
  command.args
end

#beforeObject



46
47
48
49
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 46

def before
  before_default
  before_input
end

#before_defaultObject



87
88
89
90
91
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 87

def before_default
  default_args.each_with_index { |arg, i| set_default_arg i, arg }
  default_booleans.each { |name, value| set_default_boolean name, value }
  default_strings.each { |key, value| set_default_string key, value }
end

#before_inputObject



117
118
119
120
121
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 117

def before_input
  input_args.each { |index, block| set_input_arg index, &block }
  input_booleans.each { |name, block| set_input_boolean name, &block }
  input_strings.each { |key, block| set_input_string key, &block }
end

#call(menv) ⇒ Object

Raises:

  • (NoMethodError)


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 20

def call(menv)
  @menv = menv
  
  before
  method_name = "call_#{action_name}"
  if respond_to? method_name
    public_send method_name
    after
    return true
  end

  log "method not found: #{method_name.inspect}"

  raise NoMethodError, "method not found: #{method_name.inspect}", caller 
end

#commandObject



65
66
67
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 65

def command
  menv[:command]
end

#default_argsObject



105
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 105

def default_args() = fetch(:default_args) { [] }

#default_booleansObject



107
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 107

def default_booleans() = fetch(:default_booleans) { {} }

#default_stringsObject



109
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 109

def default_strings() = fetch(:default_strings) { {} }

#informObject



36
37
38
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 36

def inform
  log "not implemented"
end

#input_argsObject



135
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 135

def input_args() = fetch(:input_args) { {} }

#input_booleansObject



137
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 137

def input_booleans() = fetch(:input_booleans) { {} }

#input_stringsObject



139
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 139

def input_strings() = fetch(:input_strings) { {} }

#saveObject



40
41
42
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 40

def save
  log "not implemented"
end

#set_default_arg(index, value) ⇒ Object



111
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 111

def set_default_arg(index, value) = command.set_default_arg index, value

#set_default_boolean(name, value) ⇒ Object



113
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 113

def set_default_boolean(name, value) = command.set_default_boolean name, value

#set_default_string(key, value) ⇒ Object



115
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 115

def set_default_string(key, value) = command.set_default_string key, value

#set_input_arg(index, &block) ⇒ Object



141
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 141

def set_input_arg(index, &block) = command.set_input_arg index, &block

#set_input_boolean(name, &block) ⇒ Object



143
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 143

def set_input_boolean(name, &block) = command.set_input_boolean name, &block

#set_input_string(key, &block) ⇒ Object



145
# File 'lib/dev_system/subsystems/generator/generators/base_generator.rb', line 145

def set_input_string(key, &block) = command.set_input_string key, &block