effective_resources 1.7.6 → 1.7.7

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
  SHA256:
3
- metadata.gz: 56a161aa8bd3ad423f84fbe6f5a10b3b029eec746f72c186683472b5992d7357
4
- data.tar.gz: d7826fbdaaeeca49f15e0fac3f76ac949086c3760048ca8c7d98bf3d295fa6c9
3
+ metadata.gz: 43a2e065a385451ee58c4cf054e18ffb3b2d67618aef4c6e3a417b221b7a6839
4
+ data.tar.gz: fa379b94d613fa510aa5261c44877a344dfff0ac6de0202a64c90d692b9157aa
5
5
  SHA512:
6
- metadata.gz: 3accf197802ebe5e8bd825aad59759db334efb1c80bbce300625d391a3ca4a9075be45cc87410b1b536d8c6b817f9df11feccec7e36e6b045fdc77cdc58dffe3
7
- data.tar.gz: 798d95af974616b3cfddf193b35cbbce8df47f74d73171dfae4a1de4b4445cfec5a97765e8b3ffa275dc57c5d3064cc6a0c0672c6e760a855bab006c0ccaa48b
6
+ metadata.gz: a0ed3d10e90f30f5a7b4dd9d837fe21ca6d07c557850d1931ec97c839fbb39a78e11fa795331af247cc5fa929fccdf5aec3f6f05dfd8b68d35e3e0682de0c732
7
+ data.tar.gz: 53d62815fc3e7fa7718fa1094b7fcb721d772631b1ec1899a9ad7a4f601705091b9efba194b59c4ebead8f0a260b9791b0b83cce9d4962a523361abe46697ef0
@@ -1,25 +1,24 @@
1
1
  require 'effective_resources/engine'
2
2
  require 'effective_resources/version'
3
+ require 'effective_resources/effective_gem'
3
4
 
4
5
  module EffectiveResources
5
6
 
6
- # The following are all valid config keys
7
- mattr_accessor :authorization_method
8
- mattr_accessor :default_submits
9
-
10
- def self.setup
11
- yield self
7
+ def self.config_keys
8
+ [:authorization_method, :default_submits]
12
9
  end
13
10
 
11
+ include EffectiveGem
12
+
14
13
  def self.authorized?(controller, action, resource)
15
- @_exceptions ||= [Effective::AccessDenied, (CanCan::AccessDenied if defined?(CanCan)), (Pundit::NotAuthorizedError if defined?(Pundit))].compact
14
+ @exceptions ||= [Effective::AccessDenied, (CanCan::AccessDenied if defined?(CanCan)), (Pundit::NotAuthorizedError if defined?(Pundit))].compact
16
15
 
17
16
  return !!authorization_method unless authorization_method.respond_to?(:call)
18
17
  controller = controller.controller if controller.respond_to?(:controller)
19
18
 
20
19
  begin
21
20
  !!(controller || self).instance_exec((controller || self), action, resource, &authorization_method)
22
- rescue *@_exceptions
21
+ rescue *@exceptions
23
22
  false
24
23
  end
25
24
  end
@@ -29,9 +28,7 @@ module EffectiveResources
29
28
  end
30
29
 
31
30
  def self.default_submits
32
- @_default_submits ||= begin
33
- (['Save', 'Continue', 'Add New'] & Array(@@default_submits)).inject({}) { |h, v| h[v] = true; h }
34
- end
31
+ (['Save', 'Continue', 'Add New'] & Array(config.default_submits)).inject({}) { |h, v| h[v] = true; h }
35
32
  end
36
33
 
37
34
  end
@@ -0,0 +1,42 @@
1
+ # Effective Engine concern
2
+
3
+ module EffectiveGem
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ raise("expected self.config_keys method") unless respond_to?(:config_keys)
8
+
9
+ config_keys.each do |key|
10
+ self.class.define_method(key) { config()[key] }
11
+ end
12
+ end
13
+
14
+ module ClassMethods
15
+ def config(namespace = nil)
16
+ namespace ||= Tenant.current if defined?(Tenant)
17
+ @config.dig(namespace) || @config
18
+ end
19
+
20
+ def setup(namespace = nil, &block)
21
+ @config ||= ActiveSupport::OrderedOptions.new
22
+ namespace ||= Tenant.current if defined?(Tenant)
23
+
24
+ if namespace
25
+ @config[namespace] ||= ActiveSupport::OrderedOptions.new
26
+ end
27
+
28
+ yield(config(namespace))
29
+
30
+ if(unsupported = (config(namespace).keys - config_keys)).present?
31
+ if unsupported.include?(:authorization_method)
32
+ raise("config.authorization_method has been removed. This gem will call EffectiveResources.authorization_method instead. Please double check the config.authorization_method setting in config/initializers/effective_resources.rb and remove it from this file.")
33
+ end
34
+
35
+ raise("unsupported config keys: #{unsupported}\n supported keys: #{config_keys}")
36
+ end
37
+
38
+ true
39
+ end
40
+ end
41
+
42
+ end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.7.6'.freeze
2
+ VERSION = '1.7.7'.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.7.6
4
+ version: 1.7.7
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: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -180,6 +180,7 @@ files:
180
180
  - app/views/effective/resource/_actions_glyphicons.html.haml
181
181
  - config/effective_resources.rb
182
182
  - lib/effective_resources.rb
183
+ - lib/effective_resources/effective_gem.rb
183
184
  - lib/effective_resources/engine.rb
184
185
  - lib/effective_resources/version.rb
185
186
  - lib/generators/effective_resources/install_generator.rb