active_model_serializers_cancancan 0.1.1 → 0.2.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 +4 -4
- data/active_model_serializers_cancancan.gemspec +3 -2
- data/lib/active_model_serializers/cancan/associations.rb +2 -2
- data/lib/active_model_serializers/cancan/version.rb +1 -1
- data/spec/active_model_serializers/cancan/abilities_spec.rb +13 -6
- data/spec/active_model_serializers/cancan/associations_spec.rb +1 -1
- data/spec/spec_helper.rb +13 -11
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0ec85b16ca00aa3dc67b76e197749a3201765b4
|
4
|
+
data.tar.gz: faf305683d37e1786a558acb890865caf5a8e205
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51daa4dad16cd539c2990329e22989d6f95ab0eb405a660f2192707a113f155c2957f42158f97a12a5497ac73f67c80eaf01ac1b1378d3cdfb44cf178216af4a
|
7
|
+
data.tar.gz: 973ca7e04de70f4203e0cd3b04a757a7561cce4861c8d443cba19e6674bcefa5cc85a0d74edf797f260b34f9fb570c20f8955bfe1a1d171d41414f39b6905310
|
@@ -21,7 +21,8 @@ Gem::Specification.new do |gem|
|
|
21
21
|
|
22
22
|
gem.add_development_dependency 'bundler'
|
23
23
|
gem.add_development_dependency 'rake'
|
24
|
-
gem.add_development_dependency 'rspec', '~>
|
24
|
+
gem.add_development_dependency 'rspec', '~> 3'
|
25
|
+
gem.add_development_dependency 'rspec-its'
|
25
26
|
gem.add_development_dependency 'pry'
|
26
|
-
gem.add_development_dependency 'mongoid', '~>
|
27
|
+
gem.add_development_dependency 'mongoid', '~> 6'
|
27
28
|
end
|
@@ -7,8 +7,8 @@ module ActiveModel
|
|
7
7
|
!!options[:authorize]
|
8
8
|
end
|
9
9
|
|
10
|
-
def value_with_cancan(serializer)
|
11
|
-
val = value_without_cancan(serializer)
|
10
|
+
def value_with_cancan(serializer, include_slice)
|
11
|
+
val = value_without_cancan(serializer, include_slice)
|
12
12
|
unless authorize?
|
13
13
|
return val
|
14
14
|
end
|
@@ -4,6 +4,13 @@ describe ActiveModel::Serializer::CanCan::Abilities do
|
|
4
4
|
let(:user) { User.first }
|
5
5
|
let(:category) { Category.first }
|
6
6
|
|
7
|
+
describe 'sane' do
|
8
|
+
it do
|
9
|
+
expect(user).to_not be_nil
|
10
|
+
expect(category).to_not be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
7
14
|
class MockAbility
|
8
15
|
include CanCan::Ability
|
9
16
|
def initialize(user)
|
@@ -15,7 +22,7 @@ describe ActiveModel::Serializer::CanCan::Abilities do
|
|
15
22
|
describe '.abilities' do
|
16
23
|
let(:serializer) do
|
17
24
|
Class.new(ActiveModel::Serializer) do
|
18
|
-
|
25
|
+
attribute :id
|
19
26
|
abilities :restful, :foo, :bar
|
20
27
|
def current_ability
|
21
28
|
MockAbility.new(nil)
|
@@ -27,7 +34,7 @@ describe ActiveModel::Serializer::CanCan::Abilities do
|
|
27
34
|
|
28
35
|
def can_bar?
|
29
36
|
cannot? :read, Category
|
30
|
-
end
|
37
|
+
end
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
@@ -41,10 +48,10 @@ describe ActiveModel::Serializer::CanCan::Abilities do
|
|
41
48
|
context 'abilities key' do
|
42
49
|
subject { category_serializer.serializable_hash[:can] }
|
43
50
|
its([:restful]) { should be_nil }
|
44
|
-
its([:update]) { should
|
45
|
-
its([:show]) { should
|
46
|
-
its([:foo]) { should
|
47
|
-
its([:bar]) { should
|
51
|
+
its([:update]) { should be true }
|
52
|
+
its([:show]) { should be false }
|
53
|
+
its([:foo]) { should be true }
|
54
|
+
its([:bar]) { should be true }
|
48
55
|
end
|
49
56
|
end
|
50
57
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,8 @@ Bundler.require(:default, :test)
|
|
5
5
|
require 'mongoid'
|
6
6
|
require 'active_model_serializers_cancancan'
|
7
7
|
|
8
|
+
require 'rspec/its'
|
9
|
+
|
8
10
|
Mongoid.configure do |config|
|
9
11
|
config.connect_to "ams-test"
|
10
12
|
end
|
@@ -19,30 +21,30 @@ end
|
|
19
21
|
|
20
22
|
class Project
|
21
23
|
include Mongoid::Document
|
22
|
-
belongs_to :user
|
23
|
-
belongs_to :category
|
24
|
+
belongs_to :user, required: false
|
25
|
+
belongs_to :category, required: false
|
24
26
|
has_many :categories
|
25
27
|
end
|
26
28
|
|
27
29
|
class Category
|
28
30
|
include Mongoid::Document
|
29
|
-
belongs_to :user
|
30
|
-
belongs_to :project
|
31
|
+
belongs_to :user, required: false
|
32
|
+
belongs_to :project, required: false
|
31
33
|
has_many :projects
|
32
34
|
end
|
33
35
|
|
34
36
|
RSpec.configure do |config|
|
35
|
-
config.before do
|
36
|
-
user1 = User.create(id: 1, name: "User1")
|
37
|
-
user2 = User.create(id: 2, name: "User2")
|
37
|
+
config.before(:each) do
|
38
|
+
user1 = User.create!(id: 1, name: "User1")
|
39
|
+
user2 = User.create!(id: 2, name: "User2")
|
38
40
|
|
39
|
-
c = Category.create(project: Project.create(user: user2))
|
41
|
+
c = Category.create!(project: Project.create!(user: user2))
|
40
42
|
|
41
|
-
Project.create(user: user1, category: c)
|
42
|
-
Project.create(user: user2, category: c)
|
43
|
+
Project.create!(user: user1, category: c)
|
44
|
+
Project.create!(user: user2, category: c)
|
43
45
|
end
|
44
46
|
|
45
|
-
config.after do
|
47
|
+
config.after(:each) do
|
46
48
|
User.delete_all
|
47
49
|
Project.delete_all
|
48
50
|
Category.delete_all
|
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.
|
4
|
+
version: 0.2.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:
|
12
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: active_model_serializers
|
@@ -73,14 +73,28 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: '3'
|
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:
|
83
|
+
version: '3'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec-its
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: pry
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,14 +115,14 @@ dependencies:
|
|
101
115
|
requirements:
|
102
116
|
- - "~>"
|
103
117
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
118
|
+
version: '6'
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
108
122
|
requirements:
|
109
123
|
- - "~>"
|
110
124
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
125
|
+
version: '6'
|
112
126
|
description:
|
113
127
|
email:
|
114
128
|
- glebtv@gmail.com
|
@@ -154,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
168
|
version: '0'
|
155
169
|
requirements: []
|
156
170
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.
|
171
|
+
rubygems_version: 2.6.8
|
158
172
|
signing_key:
|
159
173
|
specification_version: 4
|
160
174
|
summary: CanCanCan integration with Active Model Serializers
|