active_model_serializers_cancancan 0.2.0 → 0.3.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: f0ec85b16ca00aa3dc67b76e197749a3201765b4
4
- data.tar.gz: faf305683d37e1786a558acb890865caf5a8e205
3
+ metadata.gz: c8399c133ca78481e609c696052dd6247a7b23e0
4
+ data.tar.gz: cc753a8711f2d93ef69f28b898a979dab7a48a8a
5
5
  SHA512:
6
- metadata.gz: 51daa4dad16cd539c2990329e22989d6f95ab0eb405a660f2192707a113f155c2957f42158f97a12a5497ac73f67c80eaf01ac1b1378d3cdfb44cf178216af4a
7
- data.tar.gz: 973ca7e04de70f4203e0cd3b04a757a7561cce4861c8d443cba19e6674bcefa5cc85a0d74edf797f260b34f9fb570c20f8955bfe1a1d171d41414f39b6905310
6
+ metadata.gz: b9010e84b574addaa16fdc6b67c44761d829846344285c1f3785fc2feb9c4dbd6086f185c0e68a514a2b21d571c6aa2fe6bd5558508a0cadd65fa4a17cf03092
7
+ data.tar.gz: b37b48af29100d674c1686947c77bd8b6bb73d96c432e7043c3b338dbaa38dc12c39bf4962060b1d5ad20605f3879c117b7d22679d58f6d08fbeb5b06a53289c
@@ -25,4 +25,5 @@ Gem::Specification.new do |gem|
25
25
  gem.add_development_dependency 'rspec-its'
26
26
  gem.add_development_dependency 'pry'
27
27
  gem.add_development_dependency 'mongoid', '~> 6'
28
+ gem.add_development_dependency 'rails', '~> 5.1.0.rc1'
28
29
  end
@@ -2,5 +2,6 @@ require 'cancancan'
2
2
  require 'active_model_serializers'
3
3
  require 'active_model_serializers/cancan/version'
4
4
  require 'active_model_serializers/cancan/helpers'
5
+ require 'active_model_serializers/cancan/reflection_value'
5
6
  require 'active_model_serializers/cancan/associations'
6
7
  require 'active_model_serializers/cancan/abilities'
@@ -3,28 +3,11 @@ require 'active_model/serializer/reflection'
3
3
  module ActiveModel
4
4
  class Serializer
5
5
  class Reflection < Field
6
+ prepend ActiveModel::Serializer::CanCan::ReflectionValue
7
+
6
8
  def authorize?
7
9
  !!options[:authorize]
8
10
  end
9
-
10
- def value_with_cancan(serializer, include_slice)
11
- val = value_without_cancan(serializer, include_slice)
12
- unless authorize?
13
- return val
14
- end
15
- if val.kind_of?(Array)
16
- val.select do |item|
17
- serializer.current_ability.can?(:read, item)
18
- end
19
- else
20
- if serializer.current_ability.can?(:read, val)
21
- val
22
- else
23
- nil
24
- end
25
- end
26
- end
27
- alias_method_chain :value, :cancan
28
11
  end
29
12
  end
30
13
  end
@@ -0,0 +1,26 @@
1
+ module ActiveModel
2
+ class Serializer
3
+ module CanCan
4
+ module ReflectionValue
5
+ def value(serializer, include_slice)
6
+ val = super(serializer, include_slice)
7
+ unless authorize?
8
+ return val
9
+ end
10
+ if val.kind_of?(Array)
11
+ val.select do |item|
12
+ serializer.current_ability.can?(:read, item)
13
+ end
14
+ else
15
+ if serializer.current_ability.can?(:read, val)
16
+ val
17
+ else
18
+ nil
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -1,7 +1,7 @@
1
1
  module ActiveModel
2
2
  module Serializers
3
3
  module Cancan
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_serializers_cancancan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GlebTv
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-03 00:00:00.000000000 Z
12
+ date: 2017-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: active_model_serializers
@@ -123,6 +123,20 @@ dependencies:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: '6'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rails
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 5.1.0.rc1
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 5.1.0.rc1
126
140
  description:
127
141
  email:
128
142
  - glebtv@gmail.com
@@ -144,6 +158,7 @@ files:
144
158
  - lib/active_model_serializers/cancan/abilities.rb
145
159
  - lib/active_model_serializers/cancan/associations.rb
146
160
  - lib/active_model_serializers/cancan/helpers.rb
161
+ - lib/active_model_serializers/cancan/reflection_value.rb
147
162
  - lib/active_model_serializers/cancan/version.rb
148
163
  - lib/active_model_serializers_cancancan.rb
149
164
  - spec/active_model_serializers/cancan/abilities_spec.rb