effective_resources 1.2.9 → 1.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80f342d10de6f2f7786972e79f3afa354685bf31
4
- data.tar.gz: efe2fbb67f1f01c850e2e6a5e4040b03889fd20c
3
+ metadata.gz: 3c5735d626c13c149f4c5e519769686ac75a3c9b
4
+ data.tar.gz: 5b86c718b4b6814616ffabf641befd81cb4b7897
5
5
  SHA512:
6
- metadata.gz: aeed7f84960367679ebab343fc64638aa1ad433ee64376042cfb519578583270a1ac15bbd03d3182a44d329d94d1ba44fbf02d427d0068967cb10734c19f0a69
7
- data.tar.gz: 48af4ce59340e3f97c5216ed7aacdaa2aac4bf4a0bf7778f3be810f15fca533c8b989e241e98fc2d4b81d31fc871038a3008e6c4a66c98f363ba2d56327ca020
6
+ metadata.gz: aced45e77272bc6492bda40dec68233e19d00bf04c7a391950b76c1a802a83d05c3406843bd36fa9a81e552042a2d153e483737a2680e2a49b057803dbee5505
7
+ data.tar.gz: 6f05a66c4a972d894dd598654362ff4f32abbf68c4351d38720e4fe16782b88071c2b67eedcb81b8ddf4e1fb824585954a3a2da17131f1dfe6587bcc6ac43cd0
@@ -42,6 +42,9 @@ module Effective
42
42
  # That class doesn't implement effective_resource do .. end block
43
43
  return [] unless effective_resource.present?
44
44
 
45
+ @permitted_params_for_seen_klasses ||= []
46
+ @permitted_params_for_seen_klasses << effective_resource.klass
47
+
45
48
  # This is :id, all belongs_to ids, and model attributes
46
49
  permitted_params = effective_resource.permitted_attributes.select do |name, (_, atts)|
47
50
  if BLACKLIST.include?(name)
@@ -85,6 +88,8 @@ module Effective
85
88
 
86
89
  # Recursively add any accepts_nested_resources
87
90
  effective_resource.accepts_nested_attributes.each do |nested|
91
+ next if @permitted_params_for_seen_klasses.include?(nested.klass)
92
+
88
93
  if (nested_params = permitted_params_for(nested.klass, namespaces)).present?
89
94
  nested_params.insert(nested_params.rindex { |obj| !obj.kind_of?(Hash)} + 1, :_destroy)
90
95
  permitted_params << { "#{nested.name}_attributes".to_sym => nested_params }
@@ -40,16 +40,8 @@ module Effective
40
40
  flash.delete(:success)
41
41
  flash.now[:danger] ||= resource_flash(:danger, resource, action)
42
42
 
43
- redirect_flash if specific_redirect_path?(:error)
44
-
45
43
  run_callbacks(:resource_render)
46
44
 
47
- if specific_redirect_path?(:error)
48
- format.html { redirect_to resource_redirect_path(:error) }
49
- format.js { redirect_to resource_redirect_path(:error) }
50
- return
51
- end
52
-
53
45
  # HTML responder
54
46
  case action.to_sym
55
47
  when :create
@@ -120,26 +120,44 @@ module ActsAsStatused
120
120
 
121
121
  # Create an received scope and approved? method for each status
122
122
  acts_as_statused_options[:statuses].each do |sym|
123
- define_method("#{sym}?") { status == sym.to_s }
124
- define_method("#{sym}_at") { status_steps["#{sym}_at".to_sym] }
125
- define_method("#{sym}_by") { acts_as_statused_by_user(sym) }
126
- define_method("#{sym}_by_id") { status_steps["#{sym}_by".to_sym] }
127
- define_method("was_#{sym}?") { send("#{sym}_at").present? }
123
+ unless respond_to?("#{sym}?")
124
+ define_method("#{sym}?") { status == sym.to_s }
125
+ end
128
126
 
129
- # approved!
130
- define_method("#{sym}!") do |atts = {}|
131
- raise 'expected a Hash of passed attributes' unless atts.kind_of?(Hash)
132
- update!(atts.merge(status: sym))
127
+ unless respond_to?("#{sym}_at")
128
+ define_method("#{sym}_at") { status_steps["#{sym}_at".to_sym] }
133
129
  end
134
130
 
135
- # unapproved!
136
- define_method("un#{sym}!") do
137
- self.status = nil if (status == sym.to_s)
131
+ unless respond_to?("#{sym}_by")
132
+ define_method("#{sym}_by") { acts_as_statused_by_user(sym) }
133
+ end
138
134
 
139
- status_steps.delete("#{sym}_at".to_sym)
140
- status_steps.delete("#{sym}_by".to_sym)
135
+ unless respond_to?("#{sym}_by_id")
136
+ define_method("#{sym}_by_id") { status_steps["#{sym}_by".to_sym] }
137
+ end
138
+
139
+ unless respond_to?("was_#{sym}?")
140
+ define_method("was_#{sym}?") { send("#{sym}_at").present? }
141
+ end
141
142
 
142
- true
143
+ # approved!
144
+ unless respond_to?("#{sym}!")
145
+ define_method("#{sym}!") do |atts = {}|
146
+ raise 'expected a Hash of passed attributes' unless atts.kind_of?(Hash)
147
+ update!(atts.merge(status: sym))
148
+ end
149
+ end
150
+
151
+ # unapproved!
152
+ unless respond_to?("un#{sym}!")
153
+ define_method("un#{sym}!") do
154
+ self.status = nil if (status == sym.to_s)
155
+
156
+ status_steps.delete("#{sym}_at".to_sym)
157
+ status_steps.delete("#{sym}_by".to_sym)
158
+
159
+ true
160
+ end
143
161
  end
144
162
 
145
163
  scope(sym, -> { where(status: sym.to_s) })
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.2.9'.freeze
2
+ VERSION = '1.2.10'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-21 00:00:00.000000000 Z
11
+ date: 2019-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails