active_model_serializers_cancancan 0.0.5 → 0.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: 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
-