active_model_serializers_cancancan 0.2.0 → 0.3.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: 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