Class: DevSystem::ShellGenerator

Inherits:
ControllerGenerator show all
Defined in:
lib/dev_system/subsystems/shell/generators/shell_generator.rb

Instance Attribute Summary

Attributes inherited from BaseGenerator

#menv

Attributes inherited from Liza::Controller

#menv

Instance Method Summary collapse

Methods inherited from ControllerGenerator

#arg_action_names, #arg_division, #arg_name, #arg_place, #arg_place_path, #arg_prefix, #arg_require, #arg_super, #available_places, #controller_name, #create_controller, #requirements_to_add, #set_default_ask, set_default_ask, #set_default_division, set_default_division, #set_default_prefix, set_default_prefix, #set_default_require, set_default_require, set_default_super, #set_default_super, #super_controller

Methods inherited from SimpleGenerator

#add_unit, #add_view, #app_shell, #arg_views, #arg_views_adjacent?, #arg_views_eof?, #arg_views_nested?, #arg_views_none?, #before, before_instance_call, #before_instance_calls, before_instance_calls, #copy_examples, #copy_file, #copy_files, #create_file, #create_file_contents, #delete_file, #generate, #inform, #mapper, #pick_many_units, #puts_line, #read_file, #remove_units, #save, #set_default_views, set_default_views, #update_file, #valid_views

Methods inherited from BaseGenerator

#action_name, #after, #args, #before, #before_default, #before_input, #call, call, #command, #default_args, default_args, #default_booleans, default_booleans, default_strings, #default_strings, get_generator_signatures, #inform, #input_args, input_args, input_booleans, #input_booleans, input_strings, #input_strings, #save, #set_default_arg, set_default_arg, #set_default_boolean, set_default_boolean, #set_default_string, set_default_string, #set_input_arg, set_input_arg, set_input_boolean, #set_input_boolean, set_input_string, #set_input_string

Methods inherited from Generator

get_generator_signatures

Methods inherited from Liza::Controller

#`, `, attr_accessor, attr_reader, attr_writer, #attrs, box, #box, call, 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 Method Details

#add_helpers_to_controller(unit, test) ⇒ Object



38
39
40
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 38

def add_helpers_to_controller(unit, test)
  unit.section name: :helpers
end

#add_instance_to_controller(unit, test) ⇒ Object



42
43
44
45
46
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 42

def add_instance_to_controller(unit, test)
  unit.section name: :instance
  log "+instance, setting default views to eof"
  set_default_views "eof"
end

#arg_accessorsObject



118
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 118

def arg_accessors() = @arg_accessors ||= command.simple_string(:accessors)

#arg_helperObject



106
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 106

def arg_helper() = @arg_helper ||= command.simple_string(:helper)

#arg_methodsObject



112
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 112

def arg_methods() = @arg_methods ||= command.simple_string(:methods)

#before_create_controllerObject



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 3

def before_create_controller
  super
  default_methods = %w[load,dump read,write import,export serialize,deserialize].sample
  family_name = super_controller.last_namespace

  command.set_boolean :helpers, false, "Do you want to add helpers? (methods and class for your customization)"
  command.set_boolean :instance, false, "Do you also want to use the instance-level of your #{family_name}?"

  command.set_string :helper, "helper", "What do you want to name your helper?"
  command.set_string :methods, default_methods, "What methods do you want to add to your helper? (comma,separated)"
  command.set_string :accessors, "", "What accessors do you want to add to your #{family_name}? (comma,separated)"
end

#call_converterObject

liza g shell:converter



62
63
64
65
66
67
68
69
70
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 62

def call_converter
  set_default_require arg_name
  set_default_super "converter"

  create_controller do |unit, test|
    unit.section name: :converter
    test.section name: :subject
  end
end

#call_defaultObject

liza g shell name place=app



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

def call_default
  set_default_require nil
  create_controller do |unit, test|
    arg_action_names.each do |action_name|
      unit.section name: :"action_#{action_name}", render_key: :actions, action: action_name
    end

    add_helpers_to_controller(unit, test) if command.simple_boolean(:helpers)
    add_instance_to_controller(unit, test) if command.simple_boolean(:instance)

    arg_action_names.each do |action_name|
      unit.view name: action_name, render_key: :view_simple, format: :txt
    end

    test.section name: :subject
  end
end

#call_examplesObject

liza g shell:examples



98
99
100
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 98

def call_examples
  copy_examples Shell
end

#call_formatterObject

liza g shell:formatter



74
75
76
77
78
79
80
81
82
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 74

def call_formatter
  set_default_require arg_name
  set_default_super "formatter"

  create_controller do |unit, test|
    unit.section name: :formatter
    test.section name: :subject
  end
end

#call_gemObject

liza g shell:gem



50
51
52
53
54
55
56
57
58
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 50

def call_gem
  set_default_require arg_name
  set_default_super "gem"

  create_controller do |unit, test|
    unit.section name: :"use_case_1", render_key: :actions, action: :use_case_1
    test.section name: :subject
  end
end

#call_rendererObject

liza g shell:renderer



86
87
88
89
90
91
92
93
94
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 86

def call_renderer
  set_default_require arg_name
  set_default_super "renderer"

  create_controller do |unit, test|
    unit.section name: :renderer
    test.section name: :subject
  end
end

#helper_nameObject



104
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 104

def helper_name() = @helper_name ||= arg_helper

#the_accessorsObject



116
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 116

def the_accessors() = @the_accessors ||= arg_accessors.split(",")

#the_methodsObject



110
# File 'lib/dev_system/subsystems/shell/generators/shell_generator.rb', line 110

def the_methods() = @the_methods ||= arg_methods.split(",")