json_api_toolbox 0.6.1 → 0.7.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/CHANGELOG.md +14 -0
- data/json_api_toolbox.gemspec +1 -1
- data/lib/json_api_toolbox/serializables/serializable_enum_option.rb +13 -0
- data/lib/json_api_toolbox/serializables/serializable_job.rb +13 -0
- data/lib/json_api_toolbox/spec_support/shared_examples_for_controllers.rb +10 -2
- data/lib/json_api_toolbox/version.rb +1 -1
- data/lib/json_api_toolbox.rb +5 -1
- data/lib/renderizable.rb +9 -1
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0559ff7f9c8bb8d2bab74981d15ec808a29efaf
|
4
|
+
data.tar.gz: '08d15e1d6f8b234f7af34d1864ea4429d429ed83'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97eb5a10f3a1c0ffb66cdfd2fc79b74319b0b9a7442cf379f66aa63dabcc9e8d7783d30690b20bc47d3aee3dc0c806311be99b04e46b67044b846d8c1e765404
|
7
|
+
data.tar.gz: d54e00475644cebb4a7fe8283c963242c70d54cf8a4f975f373812eeaf40f62836a14d70310fbe71d87a64b8ac83c5c4ccf21405c1a77abb219bf65f0d32993f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
|
+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [0.7.0] - 2017-12-11
|
10
|
+
### Added
|
11
|
+
- Added Enum Serializable
|
12
|
+
- Added Job Serializable
|
13
|
+
- Added shared example "a json api response"
|
14
|
+
- Added meta response count for all index routes
|
data/json_api_toolbox.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
22
|
spec.add_dependency 'activesupport', '>= 4.0'
|
23
|
-
spec.add_dependency 'jsonapi-
|
23
|
+
spec.add_dependency 'jsonapi-serializable', '>= 0.3.0'
|
24
24
|
spec.add_dependency 'rspec', '~> 3.0'
|
25
25
|
|
26
26
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JsonApiToolbox
|
4
|
+
module Serializables
|
5
|
+
class SerializableEnumOption < JSONAPI::Serializable::Resource
|
6
|
+
type { @object[:type] }
|
7
|
+
|
8
|
+
id { @object[:id] }
|
9
|
+
|
10
|
+
attribute :description { @object[:description] }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'rspec'
|
4
|
-
|
5
3
|
module JsonApiToolbox
|
6
4
|
module SpecSupport
|
7
5
|
module SharedExamplesForControllers
|
@@ -62,6 +60,16 @@ module JsonApiToolbox
|
|
62
60
|
expect(attributes).to match_array(relation_keys)
|
63
61
|
end
|
64
62
|
end
|
63
|
+
|
64
|
+
RSpec.shared_examples 'a json api response' do
|
65
|
+
let(:body) { JSON.parse(response.body) }
|
66
|
+
let(:data) { body['data'].first }
|
67
|
+
|
68
|
+
it { expect(body).to have_key('data') }
|
69
|
+
it { expect(data).to have_key('type') }
|
70
|
+
it { expect(data).to have_key('id') }
|
71
|
+
it { expect(data).to have_key('attributes') }
|
72
|
+
end
|
65
73
|
end
|
66
74
|
end
|
67
75
|
end
|
data/lib/json_api_toolbox.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'active_support/inflector'
|
4
|
-
require_relative 'json_api_toolbox/spec_support/shared_examples_for_controllers'
|
5
4
|
require 'renderizable'
|
6
5
|
require 'enums'
|
7
6
|
require 'postable'
|
7
|
+
require 'jsonapi/serializable'
|
8
|
+
|
9
|
+
require_relative 'json_api_toolbox/spec_support/shared_examples_for_controllers'
|
10
|
+
require_relative 'json_api_toolbox/serializables/serializable_enum_option'
|
11
|
+
require_relative 'json_api_toolbox/serializables/serializable_job'
|
8
12
|
|
9
13
|
module JsonApiToolbox; end
|
data/lib/renderizable.rb
CHANGED
@@ -6,7 +6,9 @@ module JsonApiToolbox
|
|
6
6
|
if object.respond_to?(:errors) && object.errors.any?
|
7
7
|
render({ jsonapi_errors: object.errors }.merge(options))
|
8
8
|
else
|
9
|
-
|
9
|
+
renderization =
|
10
|
+
{ jsonapi: object, include: includes_params }.merge(options)
|
11
|
+
render(renderization, build_meta_data(object))
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
@@ -46,5 +48,11 @@ module JsonApiToolbox
|
|
46
48
|
detail: message
|
47
49
|
}
|
48
50
|
end
|
51
|
+
|
52
|
+
def build_meta_data(objects)
|
53
|
+
if objects.respond_to?(:count)
|
54
|
+
{ meta: { 'total-count' => objects.count } }
|
55
|
+
end
|
56
|
+
end
|
49
57
|
end
|
50
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_api_toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adriano Bacha
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11
|
11
|
+
date: 2017-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: jsonapi-
|
28
|
+
name: jsonapi-serializable
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.
|
33
|
+
version: 0.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.3.
|
40
|
+
version: 0.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,6 +133,7 @@ files:
|
|
133
133
|
- ".rspec"
|
134
134
|
- ".ruby-version"
|
135
135
|
- ".travis.yml"
|
136
|
+
- CHANGELOG.md
|
136
137
|
- Gemfile
|
137
138
|
- README.md
|
138
139
|
- Rakefile
|
@@ -140,6 +141,8 @@ files:
|
|
140
141
|
- json_api_toolbox.gemspec
|
141
142
|
- lib/enums.rb
|
142
143
|
- lib/json_api_toolbox.rb
|
144
|
+
- lib/json_api_toolbox/serializables/serializable_enum_option.rb
|
145
|
+
- lib/json_api_toolbox/serializables/serializable_job.rb
|
143
146
|
- lib/json_api_toolbox/spec_support/shared_examples_for_controllers.rb
|
144
147
|
- lib/json_api_toolbox/version.rb
|
145
148
|
- lib/postable.rb
|