Class: DevSystem::ControllerGenerator
- Inherits:
-
SimpleGenerator
show all
- Defined in:
- lib/dev_system/subsystems/generator/generators/controller_generator.rb
Instance Attribute Summary
#menv
#menv
Class Method Summary
collapse
Instance Method Summary
collapse
#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
#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
#`, `, 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
Class Method Details
.set_default_ask(ask) ⇒ Object
137
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 137
def self.set_default_ask(ask)= before_instance_call :set_default_ask, ask
|
.set_default_division(division) ⇒ Object
143
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 143
def self.set_default_division(division)= before_instance_call :set_default_division, division
|
.set_default_prefix(prefix) ⇒ Object
141
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 141
def self.set_default_prefix(prefix)= before_instance_call :set_default_prefix, prefix
|
.set_default_require(string) ⇒ Object
145
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 145
def self.set_default_require(string)= before_instance_call :set_default_require, string
|
.set_default_super(zuper) ⇒ Object
139
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 139
def self.set_default_super(zuper)= before_instance_call :set_default_super, zuper
|
Instance Method Details
#arg_action_names ⇒ Object
103
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 103
def arg_action_names() = @arg_action_names ||= command.simple_args_from_2
|
#arg_division ⇒ Object
129
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 129
def arg_division() = @arg_division ||= command.simple_boolean(:division)
|
#arg_name ⇒ Object
101
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 101
def arg_name() = @arg_name ||= (name = command.simple_arg(1) until name.to_s.strip.length.positive?; name)
|
#arg_place ⇒ Object
105
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 105
def arg_place() = @arg_place ||= command.simple_string(:place)
|
#arg_place_path ⇒ Object
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 107
def arg_place_path
@arg_place_path ||= begin
path =
if available_places.key? arg_place
msg = "the place already exists"
available_places[arg_place]
else
msg = "infering the path"
system_name, subsystem_name = arg_place.split("/")
if subsystem_name.nil?
App.systems_directory.join "#{system_name}_system/#{super_controller.division.plural}"
else
App.systems_directory.join "#{system_name}_system/subsystems/#{subsystem_name}/#{super_controller.division.plural}"
end
end
log "#{msg}. #{path}"
path
end
end
|
#arg_prefix ⇒ Object
131
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 131
def arg_prefix() = @arg_prefix ||= command.simple_boolean(:prefix)
|
#arg_require ⇒ Object
127
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 127
def arg_require() = @arg_require ||= command.simple_string(:require)
|
#arg_super ⇒ Object
133
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 133
def arg_super() = @arg_super ||= command.simple_string(:super)
|
#available_places ⇒ Object
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 80
def available_places
@available_places ||= begin
d = super_controller.division
directory_name = arg_division \
? "#{arg_name}_#{d.plural}"
: d.plural
log "directory_name: #{directory_name}"
ControllerShell.places_for(d, directory_name: directory_name)
end
end
|
#before_create_controller ⇒ Object
58
59
60
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 58
def before_create_controller
end
|
#call_default ⇒ Object
7
8
9
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 7
def call_default
log stick :red, "Did you mean to generate a command instead?"
end
|
#controller_name ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 66
def controller_name
@controller_name ||= begin
name = arg_name
if arg_place != "app"
if arg_prefix
name = "#{arg_place.split("/").first}_#{name}"
end
end
name
end
end
|
#create_controller {|unit, test| ... } ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 13
def create_controller(&block)
before_create_controller
log "super_controller: #{super_controller}"
log "Determining class name..."
@class_name = "#{controller_name.camelize}#{super_controller.division.last_namespace}"
@class_name = "#{arg_place.split("/").first.camelize}System::#{@class_name}" unless arg_place == "app"
log "class_name: #{@class_name}"
unit, test = UnitHelper.new, UnitHelper.new
log "Yielding..."
yield unit, test
log "Determining unit and test classes names..."
unit_classes_names = [@class_name, super_controller.to_s]
test_classes_names = unit_classes_names.map { "#{_1}Test" }
log "unit_classes_names: #{unit_classes_names}"
log "test_classes_names: #{test_classes_names}"
log "Determining unit and test paths..."
directory = App.root.join(arg_place_path)
unit_path = directory.join("#{controller_name}_#{super_controller.division.singular}.rb")
test_path = directory.join("#{controller_name}_#{super_controller.division.singular}_test.rb")
log "unit_path: #{unit_path}"
log "test_path: #{test_path}"
log "Adding unit and test..."
add_unit unit, unit_classes_names, unit_path
add_unit test, test_classes_names, test_path
unless arg_views_eof?
log "Adding views..."
arg_action_names.each do |arg|
[unit, test].each do |u|
u.views.each do |view|
view_path = nil
view_path = directory.join "#{controller_name}_#{super_controller.division.singular}#{"_test" if u == test}.rb.#{view[:name]}.#{view[:format]}.erb" if arg_views_adjacent?
view_path = directory.join "#{controller_name}_#{super_controller.division.singular}#{"_test" if u == test}/#{view[:name]}.#{view[:format]}.erb" if arg_views_nested?
add_view u, view, view_path if view_path
end
end
end
end
end
|
#requirements_to_add ⇒ Object
91
92
93
94
95
96
97
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 91
def requirements_to_add
@requirements_to_add ||= begin
array = arg_require.to_s.split(",").map(&:strip).reject(&:empty?)
array = [] if array == ["none"]
array
end
end
|
#set_default_ask(ask) ⇒ Object
147
148
149
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 147
def set_default_ask(ask)
command.set_default_boolean :ask, ask
end
|
#set_default_division(division) ⇒ Object
161
162
163
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 161
def set_default_division(division)
command.set_default_boolean :division, division
end
|
#set_default_prefix(prefix) ⇒ Object
151
152
153
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 151
def set_default_prefix(prefix)
command.set_default_boolean :prefix, prefix
end
|
#set_default_require(string) ⇒ Object
165
166
167
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 165
def set_default_require(string)
command.set_default_string :require, string
end
|
#set_default_super(zuper) ⇒ Object
155
156
157
158
159
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 155
def set_default_super(zuper)
command.set_default_string :super, zuper
log stick :white, :red, "Checking if class exists... #{arg_super}_#{env[:generator_name]}"
Liza.const "#{zuper}_#{env[:generator_name]}"
end
|
#super_controller ⇒ Object
62
63
64
|
# File 'lib/dev_system/subsystems/generator/generators/controller_generator.rb', line 62
def super_controller
@super_controller ||= Liza.const "#{arg_super}_#{env[:generator_name]}"
end
|