Module: MorseControllerHelpers
- Extended by:
- ActiveSupport::Concern
- Includes:
- CrudHelpers, FlashHelpers
- Defined in:
- lib/morse_controller_helpers.rb,
lib/morse_controller_helpers/version.rb,
lib/morse_controller_helpers/crud_helpers.rb,
lib/morse_controller_helpers/flash_helpers.rb
Defined Under Namespace
Modules: CrudHelpers, FlashHelpers
Constant Summary
collapse
- VERSION =
'0.1.14'.freeze
Instance Method Summary
collapse
#flash_404_error, #flash_create_no, #flash_create_yes, #flash_destroy_no, #flash_destroy_yes, #flash_update_no, #flash_update_yes
#create, #destroy, #edit, #index, #new, #show, #update
Instance Method Details
#assign_current_instance_from_params(pri) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/morse_controller_helpers.rb', line 21
def assign_current_instance_from_params(pri)
return if dynamic_current_instance_exceptions.include? pri
klass_us = pri.gsub('_id', '')
klass = klass_us.classify.constantize
if klass.respond_to?(:friendly)
instance_variable_set "@#{klass_us}", klass.friendly.find(params[pri])
else
instance_variable_set "@#{klass_us}", klass.find(params[pri])
end
@current_instance = set_current_instance(klass_us)
end
|
#current_instances ⇒ Object
33
34
35
|
# File 'lib/morse_controller_helpers.rb', line 33
def current_instances
@current_instances = klass.all
end
|
#dynamic_current_instance ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/morse_controller_helpers.rb', line 37
def dynamic_current_instance
params_resource_ids.each do |pri|
begin
if try(:dynamic_current_instance_exceptions)
next if dynamic_current_instance_exceptions.include? pri
end
assign_current_instance_from_params(pri)
rescue ActiveRecord::RecordNotFound
render_404
end
end
end
|
#klass(str = klass_camel) ⇒ Object
50
51
52
|
# File 'lib/morse_controller_helpers.rb', line 50
def klass(str = klass_camel)
str.classify.constantize
end
|
#klass_camel ⇒ Object
54
55
56
|
# File 'lib/morse_controller_helpers.rb', line 54
def klass_camel
controller_name.singularize
end
|
#klass_humanized ⇒ Object
58
59
60
|
# File 'lib/morse_controller_helpers.rb', line 58
def klass_humanized
klass_camel.humanize
end
|
#klass_id ⇒ Object
62
63
64
|
# File 'lib/morse_controller_helpers.rb', line 62
def klass_id
"#{klass_snake}_id"
end
|
#klass_pluralized ⇒ Object
66
67
68
|
# File 'lib/morse_controller_helpers.rb', line 66
def klass_pluralized
klass_snake.pluralize
end
|
#klass_snake(str = klass_camel) ⇒ Object
70
71
72
|
# File 'lib/morse_controller_helpers.rb', line 70
def klass_snake(str = klass_camel)
str.underscore
end
|
#params_resource ⇒ Object
82
83
84
|
# File 'lib/morse_controller_helpers.rb', line 82
def params_resource
params.require(resource_symbol).permit!
end
|
#params_resource_ids ⇒ Object
74
75
76
|
# File 'lib/morse_controller_helpers.rb', line 74
def params_resource_ids
params.keys.collect { |p| p if p.include?('_id') }.compact
end
|
#params_resources ⇒ Object
78
79
80
|
# File 'lib/morse_controller_helpers.rb', line 78
def params_resources
params_resource_ids.map { |p| p.gsub('_id', '') }
end
|
#path_edit(cp = current_instance) ⇒ Object
86
87
88
|
# File 'lib/morse_controller_helpers.rb', line 86
def path_edit(cp = current_instance)
[:edit, path_prefix, cp].compact
end
|
#path_index ⇒ Object
90
91
92
|
# File 'lib/morse_controller_helpers.rb', line 90
def path_index
[path_prefix, resource_symbols].compact
end
|
#path_new ⇒ Object
94
95
96
|
# File 'lib/morse_controller_helpers.rb', line 94
def path_new
[:new, path_prefix, resource_symbol].compact
end
|
#path_prefix ⇒ Object
98
99
100
|
# File 'lib/morse_controller_helpers.rb', line 98
def path_prefix
nil
end
|
#path_prefix_symbol ⇒ Object
102
103
104
105
|
# File 'lib/morse_controller_helpers.rb', line 102
def path_prefix_symbol
return nil unless path_prefix
path_prefix.to_sym
end
|
#path_show(instance = current_instance) ⇒ Object
107
108
109
|
# File 'lib/morse_controller_helpers.rb', line 107
def path_show(instance = current_instance)
[path_prefix, instance].compact
end
|
#render_404 ⇒ Object
119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'lib/morse_controller_helpers.rb', line 119
def render_404
flash_404_error
respond_to do |format|
format.html do
render file: "#{Rails.root}/public/404",
layout: false,
status: :not_found
end
format.xml { head :not_found }
format.any { head :not_found }
end
end
|
#resource_symbol ⇒ Object
111
112
113
|
# File 'lib/morse_controller_helpers.rb', line 111
def resource_symbol
klass_snake.to_sym
end
|
#set_current_instance(k) ⇒ Object
132
133
134
|
# File 'lib/morse_controller_helpers.rb', line 132
def set_current_instance(k)
instance_variable_get("@#{k}") unless action_name == 'index'
end
|