Class: ProgrammableScaffoldRails::ActionControllerHelpers
- Inherits:
-
Object
- Object
- ProgrammableScaffoldRails::ActionControllerHelpers
- Defined in:
- lib/programmable_scaffold_rails/action_controller_helpers.rb
Overview
Used to avoid polluting controller class with methods
Instance Method Summary collapse
- #after_create_action ⇒ Object
- #after_create_url(obj) ⇒ Object
- #after_destroy_url(obj) ⇒ Object
- #after_update_action ⇒ Object
- #after_update_url(obj) ⇒ Object
- #call_strong_params ⇒ Object
- #cancan ⇒ Object
- #find_by_id_or_friendly_id(params) ⇒ Object
- #formats ⇒ Object
- #friendly_id ⇒ Object
-
#initialize(parent) ⇒ ActionControllerHelpers
constructor
A new instance of ActionControllerHelpers.
- #klass ⇒ Object
- #multiple_instances ⇒ Object
- #multiple_instances_name ⇒ Object
- #single_instance ⇒ Object
- #single_instance_name ⇒ Object
- #strong_params ⇒ Object
- #table ⇒ Object
- #url_namespace ⇒ Object
Constructor Details
#initialize(parent) ⇒ ActionControllerHelpers
Returns a new instance of ActionControllerHelpers.
9 10 11 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 9 def initialize(parent) @parent = parent end |
Instance Method Details
#after_create_action ⇒ Object
61 62 63 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 61 def after_create_action @after_create_action = [:after_create_action].try(:to_sym) end |
#after_create_url(obj) ⇒ Object
101 102 103 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 101 def after_create_url(obj) run_after_url_call_or_yield(:create, obj) { after_create_or_update_default_url(:create, obj) } end |
#after_destroy_url(obj) ⇒ Object
109 110 111 112 113 114 115 116 117 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 109 def after_destroy_url(obj) run_after_url_call_or_yield(:destroy, obj) do if url_namespace.blank? controller.url_for(multiple_instances_name) else controller.url_for([url_namespace, multiple_instances_name]) end end end |
#after_update_action ⇒ Object
65 66 67 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 65 def after_update_action @after_update_action = [:after_update_action].try(:to_sym) end |
#after_update_url(obj) ⇒ Object
105 106 107 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 105 def after_update_url(obj) run_after_url_call_or_yield(:update, obj) { after_create_or_update_default_url(:create, obj) } end |
#call_strong_params ⇒ Object
94 95 96 97 98 99 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 94 def call_strong_params unless controller.respond_to?(strong_params) raise NotImplementedError, 'No strong_params method specified' end controller.send(strong_params) end |
#cancan ⇒ Object
27 28 29 30 31 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 27 def cancan return @cancan unless @cancan.nil? @cancan = !![:cancan] end |
#find_by_id_or_friendly_id(params) ⇒ Object
79 80 81 82 83 84 85 86 87 88 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 79 def find_by_id_or_friendly_id(params) found = nil if friendly_id && klass.respond_to?(:friendly) found = klass.friendly.find(params[:id]) else found = klass.find(params[:id]) end found end |
#formats ⇒ Object
69 70 71 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 69 def formats @formats ||= [:formats] end |
#friendly_id ⇒ Object
73 74 75 76 77 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 73 def friendly_id return @friendly_id unless @friendly_id.nil? @friendly_id = !![:friendly_id] end |
#klass ⇒ Object
13 14 15 16 17 18 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 13 def klass return @klass if @klass @klass = [:class_name].try(:to_s) || controller.controller_name.to_s @klass = @klass.classify.constantize end |
#multiple_instances ⇒ Object
51 52 53 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 51 def multiple_instances @multiple_instances ||= "@#{ multiple_instances_name }".to_sym end |
#multiple_instances_name ⇒ Object
44 45 46 47 48 49 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 44 def multiple_instances_name return @multiple_instances_name if @multiple_instances_name @multiple_instances_name = [:multiple_instances_name].try(:to_s) || table.to_s @multiple_instances_name = @multiple_instances_name.pluralize.to_sym end |
#single_instance ⇒ Object
40 41 42 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 40 def single_instance @single_instance ||= "@#{ single_instance_name }".to_sym end |
#single_instance_name ⇒ Object
33 34 35 36 37 38 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 33 def single_instance_name return @single_instance_name if @single_instance_name @single_instance_name = [:single_instance_name].try(:to_s) || table.to_s @single_instance_name = @single_instance_name.singularize.to_sym end |
#strong_params ⇒ Object
90 91 92 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 90 def strong_params @strong_params ||= [:strong_params].try(:to_sym) end |
#table ⇒ Object
20 21 22 23 24 25 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 20 def table return @table if @table @table = [:table_name].try(:to_s) || klass.to_s @table = @table.tableize.to_sym end |
#url_namespace ⇒ Object
55 56 57 58 59 |
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 55 def url_namespace return @url_namespace if @url_namespace @url_namespace = [:url_namespace].try(:to_s) || '' end |