restpack_serializer 0.5.4 → 0.5.5

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: 59940462e061cdebfa6cdcee2e8614a0c4907fd7
4
- data.tar.gz: 6d9baf69729c965e1a45e1a99e6592d30e73552b
3
+ metadata.gz: 1ab97075ec26119008cee6b11195794a748b17af
4
+ data.tar.gz: 155498c6a186c00f7fe37b4a8a2af3a02556a888
5
5
  SHA512:
6
- metadata.gz: e22ce4ca562d1a086d63268a735a9b37ce77e80995cee9fdfd61b220fa3810011f8ab89a202e6b1e1603afe051dba6380cd2ee75eb22b2ff947816eb7d69105d
7
- data.tar.gz: 4a14b79434d7ae0c01e9796183f62547ac90424b4b781d2149d26d623f36e5f3dbfca5baa2586bc69cbbfb5bfd114427cab002a86c1e22604a4b9315b03de563
6
+ metadata.gz: 2e1eee7a4d17308778a0a76a3efa839ec9c0add561e7eb1817ae2709653cbfd5c407cc9cb50538abb1e37410099b3dbe8e1e8d6e9794cb6ff4a92dc88614c0e4
7
+ data.tar.gz: e959700701297dc69ebc1289a80b3c76519a2ca20950bd08c8c5609300e4a710da6ba1741f28c07fc3c997c50e5070246f7dc6bf7a94cb3dbc32de59d67ed2a7
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.0.0-p353
@@ -71,7 +71,11 @@ module RestPack
71
71
  when association.macro == :belongs_to
72
72
  model.send(association.foreign_key).try(:to_s)
73
73
  when association.macro.to_s.match(/has_/)
74
- model.send(association.name).pluck(:id).map(&:to_s)
74
+ if model.send(association.name).loaded?
75
+ model.send(association.name).collect { |associated| associated.id.to_s }
76
+ else
77
+ model.send(association.name).pluck(:id).map(&:to_s)
78
+ end
75
79
  end
76
80
  unless links_value.blank?
77
81
  data[:links][association.name.to_sym] = links_value
@@ -1,5 +1,5 @@
1
1
  module RestPack
2
2
  module Serializer
3
- VERSION = '0.5.4'
3
+ VERSION = '0.5.5'
4
4
  end
5
5
  end
@@ -153,12 +153,23 @@ describe RestPack::Serializer do
153
153
  end
154
154
 
155
155
  context "with a serializer with has_* associations" do
156
+ let(:artist_factory) { FactoryGirl.create :artist_with_fans }
156
157
  let(:artist_serializer) { MyApp::ArtistSerializer.new }
157
158
  let(:json) { artist_serializer.as_json(artist_factory) }
158
159
  let(:side_load_ids) { artist_has_association.map {|obj| obj.id.to_s } }
159
160
 
161
+ context "when the association has been eager loaded" do
162
+ before do
163
+ artist_factory.fans.stub(:loaded?) { true }
164
+ end
165
+ it "does not make a query to retrieve id values" do
166
+ expect(artist_factory.fans).not_to receive(:pluck)
167
+ json
168
+ end
169
+ end
170
+
171
+
160
172
  describe "'has_many, through' associations" do
161
- let(:artist_factory) { FactoryGirl.create :artist_with_fans }
162
173
  let(:artist_has_association) { artist_factory.fans }
163
174
 
164
175
  it "includes 'links' data when there are associated records" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restpack_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Joyce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-13 00:00:00.000000000 Z
11
+ date: 2014-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -213,6 +213,7 @@ extra_rdoc_files: []
213
213
  files:
214
214
  - ".gitignore"
215
215
  - ".rspec"
216
+ - ".ruby-version"
216
217
  - ".travis.yml"
217
218
  - Gemfile
218
219
  - Guardfile
@@ -274,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
275
  version: '0'
275
276
  requirements: []
276
277
  rubyforge_project:
277
- rubygems_version: 2.2.2
278
+ rubygems_version: 2.0.14
278
279
  signing_key:
279
280
  specification_version: 4
280
281
  summary: Model serialization, paging, side-loading and filtering