collection_json_rails 0.4.1 → 0.4.2
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: 410b0a8ded42f67f0a3cc2ad82ab1415498ab730
|
4
|
+
data.tar.gz: 7b6bdb1f51b54bcc318efb0f7382fc0f3342e28f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82cbdf3e7e9b150f4e3f55ee9d31c22f2f14321fa239979606667b7d74d01cc802d4fda6bdeb43bd55198e34ef182219aaeebd3ab2d091a5428b174e7a37e349
|
7
|
+
data.tar.gz: c8a74db3391e7e4a4514f604c04f62940f77a027033ff76972d904950934371e996bc62fc0cb92b6116bcbcacb0c1c26f15e4970fb5bb867557cd6cd168d06e8
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ Serializer](https://github.com/carlesjove/collection_json_serializer).
|
|
9
9
|
Add this line to your application's Gemfile:
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'collection_json_rails'
|
12
|
+
gem 'collection_json_rails', '~> 0.4.2'
|
13
13
|
```
|
14
14
|
|
15
15
|
And then execute:
|
@@ -54,6 +54,13 @@ class PostsController < ApplicationController
|
|
54
54
|
end
|
55
55
|
```
|
56
56
|
|
57
|
+
If you use this approach, an empty `Array` will be returned when the collection
|
58
|
+
is empty (i.e. when there are no Posts). If you still want to respond with
|
59
|
+
Collection+JSON in this scenario, you can provide a `serializer` name:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
render json: @posts, serializer: PostSerializer, status: :ok
|
63
|
+
```
|
57
64
|
|
58
65
|
#### Accepting templates:
|
59
66
|
|
@@ -10,7 +10,7 @@ module CollectionJson::Rails
|
|
10
10
|
def options_for_render(options)
|
11
11
|
result = options
|
12
12
|
if options[:json]
|
13
|
-
result[:json] = serialize(options[:json])
|
13
|
+
result[:json] = serialize(options[:json], options)
|
14
14
|
result[:status] = options[:status] || :ok
|
15
15
|
if is_collection_json?(result[:json])
|
16
16
|
result[:content_type] = CollectionJson::MIME_TYPE
|
@@ -20,8 +20,8 @@ module CollectionJson::Rails
|
|
20
20
|
result
|
21
21
|
end
|
22
22
|
|
23
|
-
def serialize(resource)
|
24
|
-
serializer_class = serializer_class_of(resource)
|
23
|
+
def serialize(resource, options = {})
|
24
|
+
serializer_class = options[:serializer] || serializer_class_of(resource)
|
25
25
|
|
26
26
|
if serializer_class.respond_to?(:new)
|
27
27
|
serializer = serializer_class.new(resource)
|
@@ -9,6 +9,10 @@ class PostsController < ActionController::Base
|
|
9
9
|
render json: []
|
10
10
|
end
|
11
11
|
|
12
|
+
def empty_array_with_serializer_name
|
13
|
+
render json: [], serializer: PostSerializer
|
14
|
+
end
|
15
|
+
|
12
16
|
def without_json
|
13
17
|
render nothing: true
|
14
18
|
end
|
@@ -30,6 +34,13 @@ class TestRender < ActionController::TestCase
|
|
30
34
|
assert_equal Mime::JSON, response.content_type
|
31
35
|
end
|
32
36
|
|
37
|
+
def test_that_a_serializer_name_can_be_specified
|
38
|
+
get :empty_array_with_serializer_name
|
39
|
+
|
40
|
+
assert_response :ok
|
41
|
+
assert_equal "application/vnd.collection+json", response.content_type
|
42
|
+
end
|
43
|
+
|
33
44
|
def test_that_objects_without_serializer_are_rendered_as_plain_json
|
34
45
|
get :without_serializer
|
35
46
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: collection_json_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carles Jove i Buxeda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: collection_json_serializer
|