restpack_serializer 0.4.12 → 0.4.13
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c65793e190074e46598d0c1840e05fce55fd0c55
|
4
|
+
data.tar.gz: 0d6d15e20c00d2123d3a3ac584f51edd908e9ec5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1b48f4b0c4cbc764d9de0a495e0ead2125ad07d96ebbd4bb69a18a72298890e167b7bceab57555a5f623d06caab26dc86b292ca5056de745df86bbd1a01a624
|
7
|
+
data.tar.gz: e28f52414ae19524964d353a55fbc24380bfe5afff65d19739363828eb21aa6641e428aa60ae0bef55ac045087ee1cd7c0feeb28a8e9b5a04eca25fe56b21cdf
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RestPack::Serializer::Single
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
module ClassMethods
|
5
|
+
def single(params = {}, scope = nil, context = {})
|
6
|
+
options = RestPack::Serializer::Options.new(self, params, scope, context)
|
7
|
+
model = options.scope_with_filters.first
|
8
|
+
|
9
|
+
return model ? self.as_json(model, context) : nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -4,6 +4,7 @@ require_relative "serializable/attributes"
|
|
4
4
|
require_relative "serializable/filterable"
|
5
5
|
require_relative "serializable/paging"
|
6
6
|
require_relative "serializable/resource"
|
7
|
+
require_relative "serializable/single"
|
7
8
|
require_relative "serializable/side_loading"
|
8
9
|
|
9
10
|
module RestPack
|
@@ -20,6 +21,7 @@ module RestPack
|
|
20
21
|
|
21
22
|
include RestPack::Serializer::Paging
|
22
23
|
include RestPack::Serializer::Resource
|
24
|
+
include RestPack::Serializer::Single
|
23
25
|
include RestPack::Serializer::Attributes
|
24
26
|
include RestPack::Serializer::Filterable
|
25
27
|
include RestPack::Serializer::SideLoading
|
data/spec/fixtures/db.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RestPack::Serializer::Single do
|
4
|
+
before(:each) do
|
5
|
+
@album = FactoryGirl.create(:album_with_songs, song_count: 11)
|
6
|
+
@song = @album.songs.first
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:resource) { MyApp::SongSerializer.single(params, scope, context) }
|
10
|
+
let(:params) { { id: @song.id } }
|
11
|
+
let(:scope) { nil }
|
12
|
+
let(:context) { { } }
|
13
|
+
|
14
|
+
it "returns a resource by id" do
|
15
|
+
resource[:id].should == @song.id.to_s
|
16
|
+
resource[:title].should == @song.title
|
17
|
+
end
|
18
|
+
|
19
|
+
context "with context" do
|
20
|
+
let(:context) { { reverse_title?: true } }
|
21
|
+
|
22
|
+
it "returns reversed titles" do
|
23
|
+
resource[:title].should == @song.title.reverse
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "invalid id" do
|
28
|
+
let(:params) { { id: @song.id + 100 } }
|
29
|
+
|
30
|
+
it "returns nil" do
|
31
|
+
resource.should == nil
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restpack_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Joyce
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- lib/restpack_serializer/serializable/paging.rb
|
233
233
|
- lib/restpack_serializer/serializable/resource.rb
|
234
234
|
- lib/restpack_serializer/serializable/side_loading.rb
|
235
|
+
- lib/restpack_serializer/serializable/single.rb
|
235
236
|
- lib/restpack_serializer/version.rb
|
236
237
|
- restpack_serializer.gemspec
|
237
238
|
- spec/factory/factory_spec.rb
|
@@ -248,6 +249,7 @@ files:
|
|
248
249
|
- spec/serializable/side_loading/belongs_to_spec.rb
|
249
250
|
- spec/serializable/side_loading/has_many_spec.rb
|
250
251
|
- spec/serializable/side_loading/side_loading_spec.rb
|
252
|
+
- spec/serializable/single_spec.rb
|
251
253
|
- spec/spec_helper.rb
|
252
254
|
- spec/support/factory.rb
|
253
255
|
homepage: https://github.com/RestPack
|
@@ -288,6 +290,7 @@ test_files:
|
|
288
290
|
- spec/serializable/side_loading/belongs_to_spec.rb
|
289
291
|
- spec/serializable/side_loading/has_many_spec.rb
|
290
292
|
- spec/serializable/side_loading/side_loading_spec.rb
|
293
|
+
- spec/serializable/single_spec.rb
|
291
294
|
- spec/spec_helper.rb
|
292
295
|
- spec/support/factory.rb
|
293
296
|
has_rdoc:
|