Class: BrainDamage::ControllerGenerator
- Inherits:
-
Templateable::ClassTemplateable
- Object
- Templateable::Base
- Templateable::ClassTemplateable
- BrainDamage::ControllerGenerator
- Defined in:
- lib/generators/brain_damage/lib/controller/controller_generator.rb
Instance Attribute Summary collapse
-
#set_member_before_action_list ⇒ Object
Returns the value of attribute set_member_before_action_list.
Attributes inherited from Templateable::ClassTemplateable
Attributes inherited from Templateable::Base
#inner_html, #options, #template_file
Instance Method Summary collapse
- #add_before_filters ⇒ Object
- #always_overwrite_methods ⇒ Object
- #attribute_white_list ⇒ Object
- #generate ⇒ Object
-
#initialize(resource, options = {}) ⇒ ControllerGenerator
constructor
A new instance of ControllerGenerator.
Methods inherited from Templateable::ClassTemplateable
#class_definition, #extract_definitions, #leading_class_method_calls, #methods, #overwrite_method?, #private_methods, #public_methods, #remove_methods, #setup
Methods inherited from Templateable::Base
#indent, #method_missing, #render, #render_erb_file, #render_erb_string, #render_template_file
Constructor Details
#initialize(resource, options = {}) ⇒ ControllerGenerator
Returns a new instance of ControllerGenerator.
7 8 9 10 11 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 7 def initialize(resource, = {}) @template_file = 'controller.rb' @set_member_before_action_list = [:show, :edit, :update, :destroy] super end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class BrainDamage::Templateable::Base
Instance Attribute Details
#set_member_before_action_list ⇒ Object
Returns the value of attribute set_member_before_action_list.
5 6 7 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 5 def set_member_before_action_list @set_member_before_action_list end |
Instance Method Details
#add_before_filters ⇒ Object
18 19 20 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 18 def add_before_filters @parser.class_method_calls[:after_class_definition] << RubySimpleParser::CodeLine.new(render_erb_string('before_action :set_<%= singular_table_name %>, only: <%= set_member_before_action_list.inspect %>').indent) end |
#always_overwrite_methods ⇒ Object
36 37 38 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 36 def always_overwrite_methods [render_erb_string("<%= singular_table_name %>_params").to_sym] end |
#attribute_white_list ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 22 def attribute_white_list @resource.fields.values.map(&:attr_white_list).reject(&:nil?).sort { |field_a, field_b| is_hash_a = (field_a.index '=>') || 0 is_hash_b = (field_b.index '=>') || 0 if is_hash_a == is_hash_b field_a <=> field_b else is_hash_a <=> is_hash_b end }.join(', ') end |
#generate ⇒ Object
13 14 15 16 |
# File 'lib/generators/brain_damage/lib/controller/controller_generator.rb', line 13 def generate add_before_filters render end |