cancancan 2.0.0 → 2.1.0

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: a0ea8834742608ecbf144220b0c94d7a81ccfb31
4
- data.tar.gz: 5c796d392b463218b3f65801b7c41459ec2120d0
3
+ metadata.gz: 9115e4337e5f3acf25ada77c66a9e2eef4627cd8
4
+ data.tar.gz: 530b77ec0c2f974624e814a65d798864b30324b8
5
5
  SHA512:
6
- metadata.gz: 1a37095cca2bb56e5243eeef0f809926ddc20ed8792e8cee90c54ddef818a55f17bd3a92c0aaeba1b9e451d0009cbd7a535a543a3540ee072ad1cc900b117766
7
- data.tar.gz: 50bdff681b887c27b8650d510ab86f296eefbf68019fdf085519d925f2c70e417728061cbba75028c7f7eca7d114b0ea951da842fdcb33d4690653953dac57dd
6
+ metadata.gz: 8e4091db3eb5acc0567e7d9c80df489974013021a5ee54010a4f9406727680d753c48d955b31e4285fb6903aedfda66089f9a12c2afc07e9e55b90545f31de69
7
+ data.tar.gz: 438619dd7cde250eb3598ed34cdc28f514a7d9ce2fa18221cdc3c945312a855ab5cb3c378e5c7737367551353f39f2fdf4e37fd16371e4af3d18b88eb9985da3
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.required_ruby_version = '>= 2.0.0'
22
22
 
23
23
  s.add_development_dependency 'bundler', '~> 1.3'
24
- s.add_development_dependency 'rubocop', '~> 0.46'
24
+ s.add_development_dependency 'rubocop', '~> 0.48.1'
25
25
  s.add_development_dependency 'rake', '~> 10.1', '>= 10.1.1'
26
26
  s.add_development_dependency 'rspec', '~> 3.2', '>= 3.2.0'
27
27
  s.add_development_dependency 'appraisal', '~> 2.0', '>= 2.0.0'
@@ -223,7 +223,7 @@ module CanCan
223
223
  keys = unauthorized_message_keys(action, subject)
224
224
  variables = { action: action.to_s }
225
225
  variables[:subject] = (subject.class == Class ? subject : subject.class).to_s.underscore.humanize.downcase
226
- message = I18n.translate(nil, variables.merge(scope: :unauthorized, default: keys + ['']))
226
+ message = I18n.translate(keys.shift, variables.merge(scope: :unauthorized, default: keys + ['']))
227
227
  message.blank? ? nil : message
228
228
  end
229
229
 
@@ -291,11 +291,10 @@ module CanCan
291
291
 
292
292
  def unauthorized_message_keys(action, subject)
293
293
  subject = (subject.class == Class ? subject : subject.class).name.underscore unless subject.is_a? Symbol
294
- [subject, :all].map do |try_subject|
295
- [aliases_for_action(action), :manage].flatten.map do |try_action|
296
- :"#{try_action}.#{try_subject}"
297
- end
298
- end.flatten
294
+ aliases = aliases_for_action(action)
295
+ [subject, :all].product([*aliases, :manage]).map do |try_subject, try_action|
296
+ :"#{try_action}.#{try_subject}"
297
+ end
299
298
  end
300
299
 
301
300
  # Accepts an array of actions and returns an array of actions which match.
@@ -40,7 +40,7 @@ module CanCan
40
40
  # private
41
41
  #
42
42
  # def find_book_by_permalink
43
- # @book = Book.find_by_permalink!(params[:id)
43
+ # @book = Book.find_by_permalink!(params[:id])
44
44
  # end
45
45
  # end
46
46
  #
@@ -285,13 +285,14 @@ module CanCan
285
285
  end
286
286
 
287
287
  def cancan_skipper
288
- @_cancan_skipper ||= { authorize: {}, load: {} }
288
+ self._cancan_skipper ||= { authorize: {}, load: {} }
289
289
  end
290
290
  end
291
291
 
292
292
  def self.included(base)
293
293
  base.extend ClassMethods
294
294
  base.helper_method :can?, :cannot?, :current_ability if base.respond_to? :helper_method
295
+ base.class_attribute :_cancan_skipper
295
296
  end
296
297
 
297
298
  # Raises a CanCan::AccessDenied exception if the current_ability cannot
@@ -383,8 +384,9 @@ module CanCan
383
384
  end
384
385
  end
385
386
 
386
- if defined? ActionController::Base
387
- ActionController::Base.class_eval do
388
- include CanCan::ControllerAdditions
387
+ if defined? ActionController
388
+ %w[Base API].each do |klass|
389
+ next unless ActionController.const_defined?(klass)
390
+ ActionController.const_get(klass).class_eval { include CanCan::ControllerAdditions }
389
391
  end
390
392
  end
@@ -170,7 +170,8 @@ module CanCan
170
170
  end
171
171
 
172
172
  def resource_instance
173
- @controller.instance_variable_get("@#{instance_name}") if load_instance?
173
+ return unless load_instance? && @controller.instance_variable_defined?("@#{instance_name}")
174
+ @controller.instance_variable_get("@#{instance_name}")
174
175
  end
175
176
 
176
177
  def collection_instance=(instance)
@@ -178,6 +179,7 @@ module CanCan
178
179
  end
179
180
 
180
181
  def collection_instance
182
+ return unless @controller.instance_variable_defined?("@#{instance_name.to_s.pluralize}")
181
183
  @controller.instance_variable_get("@#{instance_name.to_s.pluralize}")
182
184
  end
183
185
 
@@ -258,7 +260,8 @@ module CanCan
258
260
  elsif @options[:class] && @params.key?(extract_key(@options[:class]))
259
261
  @params[extract_key(@options[:class])]
260
262
  else
261
- @params[extract_key(namespaced_name)]
263
+ params = @params[extract_key(namespaced_name)]
264
+ params.is_a?(Hash) ? params : nil
262
265
  end
263
266
  end
264
267
 
@@ -1,3 +1,3 @@
1
1
  module CanCan
2
- VERSION = '2.0.0'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cancancan
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Rodi (Renuo AG)
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-05-18 00:00:00.000000000 Z
14
+ date: 2017-11-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -33,14 +33,14 @@ dependencies:
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '0.46'
36
+ version: 0.48.1
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '0.46'
43
+ version: 0.48.1
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: rake
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.5.2
150
+ rubygems_version: 2.6.13
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Simple authorization solution for Rails.