effective_resources 1.2.9 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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