active_model_serializers_cancancan 0.1.0 → 0.1.1

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: 0deafd346094e3f7262e194e3b172efebe82c1a6
4
- data.tar.gz: 1c00fabc26fa8fb2b697b119bad616ab687cc46d
3
+ metadata.gz: 0c73184a79fdd879b8191cb33131026be82a74a4
4
+ data.tar.gz: a3b5dcad57c29c664b7af657e8713530594318ce
5
5
  SHA512:
6
- metadata.gz: db8ae6a127b71dfa77816890e07cb16087c71ae2b8ee3303bbcae92b7270b19a995d5b4643380e5b2f496f2142c8c107b01286e568fc638014acccbc7484b720
7
- data.tar.gz: b81eceda7ac47713893019f55a0d2cf9c443edd2ef64464d15c48ab5c400cba9ef5b0f80683a928c3211317bda2b7981d8af7f52f8e79a2ee17eabc39b1c36ba
6
+ metadata.gz: a6abdaa71b6e3ed251c6e31caa8376b66e33f69af1d79662d756d8c55199957fda5ebe1d2833cf291a3da1067d4aea02addafd59aa1c3015690231cda1a1e4e5
7
+ data.tar.gz: 8ba3ced18b6092081ce2efdaa1d7b7f0e4e28d3586f80fd264890728bdd9c64619e64ada9c88d882861958828f6cfd24381b9f9cc122259f74c084895e72d682
@@ -6,6 +6,10 @@ module ActiveModel
6
6
  Ability.new(instance_options[:scope])
7
7
  end
8
8
 
9
+ def current_user
10
+ instance_options[:scope]
11
+ end
12
+
9
13
  def can?(*args)
10
14
  current_ability.can? *args
11
15
  end
@@ -1,7 +1,7 @@
1
1
  module ActiveModel
2
2
  module Serializers
3
3
  module Cancan
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
@@ -113,4 +113,42 @@ describe ActiveModel::Serializer::Associations do
113
113
  end
114
114
  end
115
115
 
116
+ context 'when serializing has_many current_user should be available' do
117
+ before do
118
+ Object.send(:remove_const, :CategorySerializer) if defined?(CategorySerializer)
119
+ Object.send(:remove_const, :ProjectSerializer) if defined?(ProjectSerializer)
120
+ Object.send(:remove_const, :Ability) if defined?(Ability)
121
+
122
+ CategorySerializer = Class.new(ActiveModel::Serializer) do
123
+ attributes :id
124
+ has_many :projects
125
+ has_one :project
126
+ end
127
+
128
+ ProjectSerializer = Class.new(ActiveModel::Serializer) do
129
+ attributes :id
130
+ def id
131
+ if current_user.nil?
132
+ nil
133
+ else
134
+ current_user.id
135
+ end
136
+ end
137
+ end
138
+
139
+ Ability = Class.new do
140
+ include CanCan::Ability
141
+ def initialize(user)
142
+ can :read, :category
143
+ can :read, :project
144
+ end
145
+ end
146
+
147
+ end
148
+
149
+ it 'should serialize authorized has_one records' do
150
+ expect(CategorySerializer.new(category, scope: User.find(2)).serializable_hash[:project]).to_not be_nil
151
+ expect(CategorySerializer.new(category, scope: User.find(2)).serializable_hash[:project][:id]).to eq 2
152
+ end
153
+ end
116
154
  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.1.0
4
+ version: 0.1.1
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: 2016-07-04 00:00:00.000000000 Z
12
+ date: 2016-08-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: active_model_serializers