active_model_serializers_cancancan 0.0.5 → 0.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: 9085896d17f7f4d0cba7dfbaafb9af6c6f1244a8
4
- data.tar.gz: b1895581af462fc4936516be90317b30c8ac3593
3
+ metadata.gz: 0deafd346094e3f7262e194e3b172efebe82c1a6
4
+ data.tar.gz: 1c00fabc26fa8fb2b697b119bad616ab687cc46d
5
5
  SHA512:
6
- metadata.gz: 31d68875d9ba1f25b5a1b0999a0c707b4f7efd377d0905fbf5fcfc9aa00944bf14377ae67481804584a2cfc05b02b14ba7ecd21fdfe11dedd070e3f8c8911b2e
7
- data.tar.gz: 8ccd70b1d4459fff5f85fd8da4036efa201a7c34acee92476a3188d4f658861853a69c57aeac2ac1adcc9ec32ec3fd8ce124e741451b053cdf12e678f4a07251
6
+ metadata.gz: db8ae6a127b71dfa77816890e07cb16087c71ae2b8ee3303bbcae92b7270b19a995d5b4643380e5b2f496f2142c8c107b01286e568fc638014acccbc7484b720
7
+ data.tar.gz: b81eceda7ac47713893019f55a0d2cf9c443edd2ef64464d15c48ab5c400cba9ef5b0f80683a928c3211317bda2b7981d8af7f52f8e79a2ee17eabc39b1c36ba
@@ -16,12 +16,12 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.require_paths = ["lib"]
18
18
 
19
- gem.add_dependency 'active_model_serializers'
19
+ gem.add_dependency 'active_model_serializers', '~> 0.10.0'
20
20
  gem.add_dependency 'cancancan'
21
21
 
22
22
  gem.add_development_dependency 'bundler'
23
23
  gem.add_development_dependency 'rake'
24
- gem.add_development_dependency 'rspec', '~> 2.14.0'
24
+ gem.add_development_dependency 'rspec', '~> 2.99.0'
25
25
  gem.add_development_dependency 'pry'
26
- gem.add_development_dependency 'mongoid', '~> 4.0.0.beta1'
26
+ gem.add_development_dependency 'mongoid', '~> 5'
27
27
  end
@@ -1,6 +1,5 @@
1
1
  require 'cancancan'
2
2
  require 'active_model_serializers'
3
- require 'active_model_serializers/cancan/monkeypatch'
4
3
  require 'active_model_serializers/cancan/version'
5
4
  require 'active_model_serializers/cancan/helpers'
6
5
  require 'active_model_serializers/cancan/associations'
@@ -1,38 +1,30 @@
1
+ require 'active_model/serializer/reflection'
2
+
1
3
  module ActiveModel
2
4
  class Serializer
3
- module Associations
4
- class Config
5
- def authorize?
6
- !!options[:authorize]
7
- end
5
+ class Reflection < Field
6
+ def authorize?
7
+ !!options[:authorize]
8
8
  end
9
9
 
10
- class HasMany
11
- def serialize_with_cancan
12
- return serialize_without_cancan unless authorize?
13
- associated_object.select {|item| find_serializable(item).can?(:read, item) }.map do |item|
14
- find_serializable(item).serializable_hash
15
- end
10
+ def value_with_cancan(serializer)
11
+ val = value_without_cancan(serializer)
12
+ unless authorize?
13
+ return val
16
14
  end
17
- alias_method_chain :serialize, :cancan
18
- end
19
-
20
- class HasOne
21
- def serialize_with_cancan
22
- unless authorize?
23
- return serialize_without_cancan
15
+ if val.kind_of?(Array)
16
+ val.select do |item|
17
+ serializer.current_ability.can?(:read, item)
24
18
  end
25
- object = associated_object
26
- serializer = find_serializable(object)
27
- if serializer && serializer.can?(:read, object)
28
- serialize_without_cancan
19
+ else
20
+ if serializer.current_ability.can?(:read, val)
21
+ val
29
22
  else
30
23
  nil
31
24
  end
32
25
  end
33
- alias_method_chain :serialize, :cancan
34
26
  end
27
+ alias_method_chain :value, :cancan
35
28
  end
36
29
  end
37
30
  end
38
-
@@ -3,7 +3,7 @@ module ActiveModel
3
3
  module CanCan
4
4
  module Helpers
5
5
  def current_ability
6
- Ability.new(options[:scope])
6
+ Ability.new(instance_options[:scope])
7
7
  end
8
8
 
9
9
  def can?(*args)
@@ -1,7 +1,7 @@
1
1
  module ActiveModel
2
2
  module Serializers
3
3
  module Cancan
4
- VERSION = "0.0.5"
4
+ VERSION = "0.1.0"
5
5
  end
6
6
  end
7
7
  end
data/spec/spec_helper.rb CHANGED
@@ -8,6 +8,7 @@ require 'active_model_serializers_cancancan'
8
8
  Mongoid.configure do |config|
9
9
  config.connect_to "ams-test"
10
10
  end
11
+ Mongo::Logger.logger.level = ::Logger::FATAL
11
12
 
12
13
  class User
13
14
  include Mongoid::Document
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.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GlebTv
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-16 00:00:00.000000000 Z
12
+ date: 2016-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: active_model_serializers
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 0.10.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 0.10.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: cancancan
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: 2.14.0
76
+ version: 2.99.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: 2.14.0
83
+ version: 2.99.0
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: pry
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -101,14 +101,14 @@ dependencies:
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: 4.0.0.beta1
104
+ version: '5'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: 4.0.0.beta1
111
+ version: '5'
112
112
  description:
113
113
  email:
114
114
  - glebtv@gmail.com
@@ -130,7 +130,6 @@ files:
130
130
  - lib/active_model_serializers/cancan/abilities.rb
131
131
  - lib/active_model_serializers/cancan/associations.rb
132
132
  - lib/active_model_serializers/cancan/helpers.rb
133
- - lib/active_model_serializers/cancan/monkeypatch.rb
134
133
  - lib/active_model_serializers/cancan/version.rb
135
134
  - lib/active_model_serializers_cancancan.rb
136
135
  - spec/active_model_serializers/cancan/abilities_spec.rb
@@ -155,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
154
  version: '0'
156
155
  requirements: []
157
156
  rubyforge_project:
158
- rubygems_version: 2.2.2
157
+ rubygems_version: 2.5.1
159
158
  signing_key:
160
159
  specification_version: 4
161
160
  summary: CanCanCan integration with Active Model Serializers
@@ -1,9 +0,0 @@
1
- # A small hack to allow passing options to associations
2
- class ActiveModel::Serializer
3
- def include_associations!
4
- _associations.each_pair do |name, asst|
5
- include!(name, asst.options.dup) if include?(name)
6
- end
7
- end
8
- end
9
-