effective_resources 1.0.19 → 1.1.0

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: 2d1f8af977978cf1bb45d0cc6a737396cba17f55
4
- data.tar.gz: b57662a6e2e9934e8824b1b1f9a3d209eaeef8d6
3
+ metadata.gz: 962a290756ff82a2d328b486f9d381cb7f97568b
4
+ data.tar.gz: 3059d2ba54c29292b5b704ca2fde4b40feaf3969
5
5
  SHA512:
6
- metadata.gz: 63bd096d0c815c10a817790ff5245ef946e41cb4b1beec69d3f9eb2461a79824867e46a8267efa44a043a8e337002e9323badf0dd5102d82c508b6cc831d63bf
7
- data.tar.gz: d240fa175ec01452e98214ad4e28dc2ee2fef2f43ed74349520ab7268546192e95c435c005e977d8faa66b3ad133ffea97ebf11d38834336cf54664568b35e7b
6
+ metadata.gz: c87bbabac3cc1e732d1e673a0462068ba9b13623c5e4ed3418c5b51443684063ac8217c2e15238136c0d2d7c6c2a132319b16ac9a7e4eec9112269b0a0a36b59
7
+ data.tar.gz: 4a1cf91f0d0cf9d593658df108f80831f4fee7ff5d30af83a113f4b637dd779879b81add4869525cfed905822db94d666e4067bf56d95837fab5e9cb8d643a20
@@ -37,6 +37,10 @@ module Effective
37
37
  if effective_resource.model.present?
38
38
  define_method(:effective_resource_permitted_params) { resource_permitted_params } # save.rb
39
39
  end
40
+
41
+ if effective_resource.active_model?
42
+ define_method(:effective_resource_permitted_params) { resource_active_model_permitted_params } # save.rb
43
+ end
40
44
  end
41
45
 
42
46
  end
@@ -86,12 +90,14 @@ module Effective
86
90
  when Symbol
87
91
  effective_resource.klass.send(@_effective_resource_scope)
88
92
  when nil
89
- effective_resource.klass.all
93
+ effective_resource.klass.respond_to?(:all) ? effective_resource.klass.all : effective_resource.klass
90
94
  else
91
95
  raise "expected resource_scope method to return an ActiveRecord::Relation or Hash"
92
96
  end
93
97
 
94
- raise("unable to build resource_scope for #{effective_resource.klass || 'unknown klass'}.") unless relation.kind_of?(ActiveRecord::Relation)
98
+ unless relation.kind_of?(ActiveRecord::Relation) || effective_resource.active_model?
99
+ raise("unable to build resource_scope for #{effective_resource.klass || 'unknown klass'}.")
100
+ end
95
101
 
96
102
  relation
97
103
  )
@@ -19,6 +19,17 @@ module Effective
19
19
  params.require(effective_resource.name).permit(*permitted_params)
20
20
  end
21
21
 
22
+ # If the resource is ActiveModel, just permit all
23
+ # This can still be overridden by a controller
24
+ def resource_active_model_permitted_params
25
+ if Rails.env.development?
26
+ Rails.logger.info "Effective::CrudController#resource_permitted_params:"
27
+ Rails.logger.info "params.require(:#{effective_resource.name}).permit!"
28
+ end
29
+
30
+ params.require(effective_resource.name).permit!
31
+ end
32
+
22
33
  private
23
34
 
24
35
  def permitted_params_for(resource, namespaces = [])
@@ -40,8 +40,16 @@ 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
+
43
45
  run_callbacks(:resource_render)
44
46
 
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
+
45
53
  # HTML responder
46
54
  case action.to_sym
47
55
  when :create
@@ -50,8 +58,7 @@ module Effective
50
58
  format.html { render :edit }
51
59
  when :destroy
52
60
  format.html do
53
- flash.now[:danger] = nil
54
- flash[:danger] = resource_flash(:danger, resource, action)
61
+ redirect_flash
55
62
  redirect_to(resource_redirect_path(action))
56
63
  end
57
64
  else # member action
@@ -70,9 +77,7 @@ module Effective
70
77
  render :show
71
78
  else
72
79
  @page_title ||= resource.to_s
73
- flash.now[:danger] = nil
74
- flash[:danger] = resource_flash(:danger, resource, action)
75
-
80
+ redirect_flash
76
81
  redirect_to(referer_redirect_path || resource_redirect_path(action))
77
82
  end
78
83
  end
@@ -82,7 +87,16 @@ module Effective
82
87
  view = lookup_context.template_exists?(action, _prefixes) ? action : :member_action
83
88
  render(view, locals: { action: action }) # action.js.erb
84
89
  end
90
+ end
91
+
92
+ private
93
+
94
+ def redirect_flash
95
+ return unless flash.now[:danger].present?
85
96
 
97
+ danger = flash.now[:danger]
98
+ flash.now[:danger] = nil
99
+ flash[:danger] ||= danger
86
100
  end
87
101
 
88
102
  end
@@ -29,6 +29,10 @@ module Effective
29
29
  klass.ancestors.include?(ActiveRecord::Base)
30
30
  end
31
31
 
32
+ def active_model?
33
+ klass.ancestors.include?(ActiveModel::Model)
34
+ end
35
+
32
36
  end
33
37
  end
34
38
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.0.19'.freeze
2
+ VERSION = '1.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.19
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect