effective_resources 0.4.7 → 0.4.8

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: 35fdc868ed7c8871810c8d041776f9d9c264e63b
4
- data.tar.gz: 4c097429d190542812d01b2dcc2bd4d7cffc6653
3
+ metadata.gz: 326b467ef37eca6b23e074d9e63d538ebf5f53b8
4
+ data.tar.gz: 8ab92828dc5506e8fa805adf33473dbaaa01ccff
5
5
  SHA512:
6
- metadata.gz: 2e85f37e03a17f55b9db2dbe65882ce42ed37503e7c75efe5e4f14aafd4402337eeae6ddca2711ea58126370699180c9f64a42ac1cfec6f7464e8fa14e2b9bc2
7
- data.tar.gz: 5bf2bdf611049d0d1a32e52aebefb6620f79321913b30fbcf1a65c763c452e784e7d9b5300fac09628a51e7bd782c9dc26078df6b1db33523ca3b3214ae96a7f
6
+ metadata.gz: 8dbd78d7467af34c9938cb99e43e0bfc5f947397e3c40fb66e9d4ffc02d634039e47451b7961f0b9571510d1610eb44e4b7429e658a495e0822a9a555fa9a300
7
+ data.tar.gz: 96e77365add2fb7a2af01cca14ac84648c0e2a70f369ee3bd1a485227813319faeafc2b631f5e36bc9f526282bc2fcf10e0dda586537d6fed172b3f1288e6314
@@ -27,7 +27,7 @@ module Effective
27
27
  end
28
28
 
29
29
  if effective_resource.scope?(action)
30
- self.resources ||= resource_scope.send(action)
30
+ self.resources ||= resource_scope.public_send(action)
31
31
  end
32
32
 
33
33
  self.resources ||= resource_scope.all
@@ -44,8 +44,8 @@ module Effective
44
44
  def page_title(label = nil, opts = {}, &block)
45
45
  raise 'expected a label or block' unless (label || block_given?)
46
46
 
47
- instance_eval do
48
- before_action(opts) { @page_title ||= (block_given? ? instance_eval(&block) : label) }
47
+ instance_exec do
48
+ before_action(opts) { @page_title ||= (block_given? ? instance_exec(&block) : label) }
49
49
  end
50
50
  end
51
51
 
@@ -61,17 +61,9 @@ module Effective
61
61
  def resource_scope(obj = nil, opts = {}, &block)
62
62
  raise 'expected a proc or block' unless (obj.respond_to?(:call) || block_given?)
63
63
 
64
- instance_eval do
64
+ instance_exec do
65
65
  before_action(opts) do
66
- @_effective_resource_scope ||= (
67
- if block_given?
68
- instance_exec(&block)
69
- elsif obj.respond_to?(:call)
70
- instance_exec(&obj)
71
- else
72
- obj
73
- end
74
- )
66
+ @_effective_resource_scope ||= instance_exec(&(block_given? ? block : obj))
75
67
  end
76
68
  end
77
69
  end
@@ -158,10 +150,10 @@ module Effective
158
150
  flash[:danger] = "Unable to delete #{resource_human_name}: #{resource.errors.full_messages.to_sentence}"
159
151
  end
160
152
 
161
- if request.referer.present? && !request.referer.include?(send(effective_resource.show_path))
153
+ if request.referer.present? && !request.referer.include?(effective_resource.show_path)
162
154
  redirect_to(request.referer)
163
155
  else
164
- redirect_to(send(resource_index_path))
156
+ redirect_to(resource_index_path)
165
157
  end
166
158
  end
167
159
 
@@ -179,17 +171,13 @@ module Effective
179
171
 
180
172
  referer = request.referer.to_s
181
173
 
182
- edit_path = send(effective_resource.edit_path, resource) if respond_to?(effective_resource.edit_path)
183
- new_path = effective_resource.new_path if respond_to?(effective_resource.new_path)
184
- show_path = effective_resource.show_path if respond_to?(effective_resource.show_path)
185
-
186
- if edit_path && referer.end_with?(edit_path)
174
+ if resource_edit_path && referer.end_with?(resource_edit_path)
187
175
  @page_title ||= "Edit #{resource}"
188
176
  render :edit
189
- elsif new_path && referer.end_with?(new_path)
177
+ elsif resource_new_path && referer.end_with?(resource_new_path)
190
178
  @page_title ||= "New #{resource_name.titleize}"
191
179
  render :new
192
- elsif show_path && referer.end_with?(show_path)
180
+ elsif resource_show_path && referer.end_with?(resource_show_path)
193
181
  @page_title ||= resource_name.titleize
194
182
  render :show
195
183
  else
@@ -197,7 +185,7 @@ module Effective
197
185
  flash[:danger] = flash.now[:danger]
198
186
 
199
187
  if referer.present? && (Rails.application.routes.recognize_path(URI(referer).path) rescue false)
200
- redirect_back fallback_location: resource_redirect_path
188
+ redirect_back(fallback_location: resource_redirect_path)
201
189
  else
202
190
  redirect_to(resource_redirect_path)
203
191
  end
@@ -230,18 +218,37 @@ module Effective
230
218
 
231
219
  def resource_redirect_path
232
220
  case params[:commit].to_s
233
- when 'Save' ; send(effective_resource.edit_path, resource)
234
- when 'Save and Add New' ; send(effective_resource.new_path)
235
- when 'Save and Continue' ; send(resource_index_path)
221
+ when 'Save'
222
+ [resource_edit_path, resource_show_path, resource_index_path].compact.first
223
+ when 'Save and Add New'
224
+ [resource_new_path, resource_index_path].compact.first
225
+ when 'Save and Continue'
226
+ resource_index_path
236
227
  when 'Save and Return'
237
- request.referer.present? ? request.referer : send(resource_index_path)
228
+ request.referer.present? ? request.referer : resource_index_path
238
229
  else
239
- send((effective_resource.show_path(check: true) || effective_resource.edit_path), resource)
230
+ [resource_edit_path, resource_show_path, resource_index_path].compact.first
240
231
  end
241
232
  end
242
233
 
243
234
  def resource_index_path
244
- effective_resource.index_path
235
+ send(effective_resource.index_path) if effective_resource.index_path(check: true)
236
+ end
237
+
238
+ def resource_new_path
239
+ send(effective_resource.new_path) if effective_resource.new_path(check: true)
240
+ end
241
+
242
+ def resource_edit_path
243
+ send(effective_resource.edit_path, resource) if effective_resource.edit_path(check: true)
244
+ end
245
+
246
+ def resource_show_path
247
+ send(effective_resource.show_path, resource) if effective_resource.show_path(check: true)
248
+ end
249
+
250
+ def resource_destroy_path
251
+ send(effective_resource.destroy_path, resource) if effective_resource.destroy_path(check: true)
245
252
  end
246
253
 
247
254
  def resource # @thing
@@ -303,7 +310,7 @@ module Effective
303
310
  end
304
311
 
305
312
  unless relation.kind_of?(ActiveRecord::Relation)
306
- raise("unable to build resource relation for #{effective_resource.klass || 'unknown klass'}.")
313
+ raise("unable to build resource_scope for #{effective_resource.klass || 'unknown klass'}.")
307
314
  end
308
315
 
309
316
  relation
@@ -322,6 +329,5 @@ module Effective
322
329
  ["#{resource_name}_params", "#{resource_plural_name}_params", 'permitted_params'].find { |name| respond_to?(name, true) } || 'params'
323
330
  end
324
331
 
325
-
326
332
  end
327
333
  end
@@ -1,18 +1,20 @@
1
1
  module EffectiveResourcesHelper
2
2
 
3
- def simple_form_submit(form, options = {class: 'text-right'}, &block)
4
- content_tag(:p, class: options[:class]) do
3
+ def simple_form_submit(form, options = {class: 'form-actions'}, &block)
4
+ resource = (@_effective_resource || Effective::Resource.new(controller_path))
5
+
6
+ content_tag(:div, class: options[:class]) do
5
7
  [
6
8
  form.button(:submit, 'Save', data: { disable_with: 'Saving...' }),
7
- form.button(:submit, 'Save and Continue', data: { disable_with: 'Saving...' }),
8
- form.button(:submit, 'Save and Add New', data: { disable_with: 'Saving...' }),
9
+ (form.button(:submit, 'Save and Continue', data: { disable_with: 'Saving...' }) if resource.index_path(check: true)),
10
+ (form.button(:submit, 'Save and Add New', data: { disable_with: 'Saving...' }) if resource.new_path(check: true)),
9
11
  (capture(&block) if block_given?)
10
12
  ].compact.join(' ').html_safe
11
13
  end
12
14
  end
13
15
 
14
- def simple_form_save(form, options = {class: 'text-right'}, &block)
15
- content_tag(:p, class: options[:class]) do
16
+ def simple_form_save(form, options = {class: 'form-actions'}, &block)
17
+ content_tag(:div, class: options[:class]) do
16
18
  form.button(:submit, 'Save', data: { disable_with: 'Saving...' }) + (capture(&:block) if block_given?)
17
19
  end
18
20
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '0.4.7'.freeze
2
+ VERSION = '0.4.8'.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: 0.4.7
4
+ version: 0.4.8
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: 2017-09-20 00:00:00.000000000 Z
11
+ date: 2017-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails