jsonapi-utils 0.5.0.beta5 → 0.5.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/README.md +17 -3
- data/lib/jsonapi/utils/response/formatters.rb +5 -1
- data/lib/jsonapi/utils/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0be601da593b84a1174a28708470fc8a3b19156
|
4
|
+
data.tar.gz: 201d0bb520bc0465486819f94fe419a15c4c1bb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e07edab40bd4956fb3ef3eba13e29e1f020d1ec144d2904d6e95a716a568ce8283a09f8ba8e76ecec4fd43e42805dbf72607dd97e8e1574770b0574fa0bd3f2e
|
7
|
+
data.tar.gz: c23d41ae2fa4fe7896d2aea00dc0417479a8213e407984e06281bf899912d32251bf49f206c2b18977570eb7c9cff47ec68b6f9ebaa6580f0b083228dd0b5497
|
data/README.md
CHANGED
@@ -6,7 +6,21 @@
|
|
6
6
|
|
7
7
|
Simple yet powerful way to get your Rails API compliant with [JSON API](http://jsonapi.org).
|
8
8
|
|
9
|
-
`JSONAPI::Utils` (JU) is built on top of [JSONAPI::Resources](https://github.com/cerebris/jsonapi-resources)
|
9
|
+
`JSONAPI::Utils` (JU) is built on top of [JSONAPI::Resources](https://github.com/cerebris/jsonapi-resources)
|
10
|
+
taking advantage of its resource-driven style and bringing a set of helpers to easily build modern JSON APIs
|
11
|
+
with no or less learning curve.
|
12
|
+
|
13
|
+
After installing the gem and defining the resources/routes, it's as simple as calling a render helper:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
class UsersController < ActionController::Base
|
17
|
+
include JSONAPI::Utils
|
18
|
+
|
19
|
+
def index
|
20
|
+
jsonapi_render json: User.all
|
21
|
+
end
|
22
|
+
end
|
23
|
+
```
|
10
24
|
|
11
25
|
## Table of Contents
|
12
26
|
|
@@ -48,10 +62,10 @@ For Rails 4.x add this to your application's Gemfile:
|
|
48
62
|
gem 'jsonapi-utils', '~> 0.4.7'
|
49
63
|
```
|
50
64
|
|
51
|
-
For Rails 5, specify the
|
65
|
+
For Rails 5, specify the `0.5.x` version in the Gemfile:
|
52
66
|
|
53
67
|
```ruby
|
54
|
-
gem 'jsonapi-utils', '0.5.0
|
68
|
+
gem 'jsonapi-utils', '0.5.0'
|
55
69
|
```
|
56
70
|
|
57
71
|
And then execute:
|
@@ -14,13 +14,17 @@ module JSONAPI
|
|
14
14
|
alias_method :jsonapi_serialize, :jsonapi_format
|
15
15
|
|
16
16
|
def jsonapi_format_errors(data)
|
17
|
-
data
|
17
|
+
data = JSONAPI::Utils::Exceptions::ActiveRecord.new(data, @request.resource_klass, context) if active_record_obj?(data)
|
18
18
|
errors = data.respond_to?(:errors) ? data.errors : data
|
19
19
|
JSONAPI::Utils::Support::Error.sanitize(errors).uniq
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
|
+
def active_record_obj?(data)
|
25
|
+
data.is_a?(ActiveRecord::Base)|| data.singleton_class.include?(ActiveModel::Model)
|
26
|
+
end
|
27
|
+
|
24
28
|
def build_response_document(records, options)
|
25
29
|
results = JSONAPI::OperationResults.new
|
26
30
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonapi-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.0
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Guedes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jsonapi-resources
|
@@ -193,9 +193,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
193
|
version: '0'
|
194
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
195
|
requirements:
|
196
|
-
- - "
|
196
|
+
- - ">="
|
197
197
|
- !ruby/object:Gem::Version
|
198
|
-
version:
|
198
|
+
version: '0'
|
199
199
|
requirements: []
|
200
200
|
rubyforge_project:
|
201
201
|
rubygems_version: 2.6.7
|