active_model_serializers-jsonapi_embedded_records_deserializer 0.1.0 → 0.1.1

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: 5a8bfc4881f0dcf252c4388ea048fd4c2cb7286b
4
- data.tar.gz: 2f444ce728efd408c8d20c44e8b90d8e0b61ef09
3
+ metadata.gz: 55bff852af304051e3a1cf877e98b7a0a326ecea
4
+ data.tar.gz: 706aeb581143f92f99562433414abf5d23064e8e
5
5
  SHA512:
6
- metadata.gz: a0de04e66ba26acb450d5f767b7b4a2aac5fb22d6af7a9f6c84b857e06e38f9a9dc8583499e3ee493593c8673e114da855425a1f1f15e346916375c2fe3dbdc2
7
- data.tar.gz: 684b2ea7c26c3a05722eae795e49f40032a207a968eee44acefdf330d6486e559b603afef92fbd62751acbf34950bf11cb72559c23b0beb11f0a6c6e8d019dbf
6
+ metadata.gz: 872fc591f2e067eaec302ec321b0c10fe13807d242a89e5a8876a894cc43c1545f9b3f4ee8075c445ad3570d539e3ec996810fe8cfb0d163297aa53c90c4787e
7
+ data.tar.gz: 0e2ba3bcd8001ec8c2e2f595df04b1df3e3ee8682826962a56f80311b1d59b894057d09f69c40350b47732de0874ebe4cc040290e412ae32695d0957222e3013
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'active_model_serializers', github: 'rails-api/active_model_serializers'
4
+
3
5
  # Specify your gem's dependencies in active_model_serializers-jsonapi_embedded_records_deserializer.gemspec
4
6
  gemspec
data/README.md CHANGED
@@ -82,6 +82,17 @@ specified in the `embedded` key of the deserialization options.
82
82
  ActiveModelSerializers::Deserialization.jsonapi_parse(data, embedded: [:author])
83
83
  ```
84
84
 
85
+ The deserialization part of ActiveModelSerializer is restructured between
86
+ `0.10.0.rc4` and the current `master` branch. Please check the version table
87
+ below to choose the right gem version.
88
+
89
+ |-------------------------------|-------------|
90
+ | ActiveModelSerializer version | Gem version |
91
+ |-------------------------------|-------------|
92
+ | 0.10.0.rc4 | 0.1.0 |
93
+ | master (currently: c7b2916) | 0.1.1 |
94
+ |-------------------------------|-------------|
95
+
85
96
  ## Development
86
97
 
87
98
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -18,10 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- # This only works with "0.10.0.rc4". On the current "master" branch, the
22
- # deserializer has already been moved to
23
- # active_model_serializers/adapter/json_api/deserialization
24
- spec.add_dependency 'active_model_serializers', '0.10.0.rc4'
21
+ spec.add_dependency 'active_model_serializers'
25
22
  spec.add_runtime_dependency 'railties', '>= 4.0'
26
23
 
27
24
  spec.add_development_dependency 'bundler', '~> 1.11'
@@ -1,44 +1,40 @@
1
1
  require 'active_model_serializers/jsonapi_embedded_records_deserializer/version'
2
- require 'active_model/serializer/adapter/json_api/deserialization'
2
+ require 'active_model_serializers/adapter/json_api/deserialization'
3
3
 
4
4
  module ActiveModelSerializers
5
5
  module JsonapiEmbeddedRecordsDeserializer
6
6
  end
7
- end
8
7
 
9
- module ActiveModel
10
- class Serializer
11
- module Adapter
12
- class JsonApi
13
- module Deserialization
14
- module_function
8
+ module Adapter
9
+ class JsonApi
10
+ module Deserialization
11
+ module_function
15
12
 
16
- def parse_relationship(assoc_name, assoc_data, options)
17
- prefix_key = field_key(assoc_name, options).to_s.singularize
18
- hash =
19
- if (options[:embedded] || []).include?(assoc_name.to_sym)
20
- parse_nested_attributes(assoc_name, assoc_data, options)
21
- elsif assoc_data.is_a?(Array)
22
- { "#{prefix_key}_ids".to_sym => assoc_data.map { |ri| ri['id'] } }
23
- else
24
- { "#{prefix_key}_id".to_sym => assoc_data ? assoc_data['id'] : nil }
25
- end
13
+ def parse_relationship(assoc_name, assoc_data, options)
14
+ prefix_key = field_key(assoc_name, options).to_s.singularize
15
+ hash =
16
+ if (options[:embedded] || []).include?(assoc_name.to_sym)
17
+ parse_nested_attributes(assoc_name, assoc_data, options)
18
+ elsif assoc_data.is_a?(Array)
19
+ { "#{prefix_key}_ids".to_sym => assoc_data.map { |ri| ri['id'] } }
20
+ else
21
+ { "#{prefix_key}_id".to_sym => assoc_data ? assoc_data['id'] : nil }
22
+ end
26
23
 
27
- polymorphic = (options[:polymorphic] || []).include?(assoc_name.to_sym)
28
- hash["#{prefix_key}_type".to_sym] = assoc_data['type'] if polymorphic
24
+ polymorphic = (options[:polymorphic] || []).include?(assoc_name.to_sym)
25
+ hash["#{prefix_key}_type".to_sym] = assoc_data['type'] if polymorphic
29
26
 
30
- hash
31
- end
27
+ hash
28
+ end
32
29
 
33
- def parse_nested_attributes(assoc_name, assoc_data, options)
34
- data =
35
- if assoc_data.is_a?(Array)
36
- assoc_data.map { |ri| parse({ 'data' => ri }, options) }
37
- else
38
- parse({ 'data' => assoc_data }, options)
39
- end
40
- { "#{assoc_name}_attributes".to_sym => data }
41
- end
30
+ def parse_nested_attributes(assoc_name, assoc_data, options)
31
+ data =
32
+ if assoc_data.is_a?(Array)
33
+ assoc_data.map { |ri| parse({ 'data' => ri }, options) }
34
+ else
35
+ parse({ 'data' => assoc_data }, options)
36
+ end
37
+ { "#{assoc_name}_attributes".to_sym => data }
42
38
  end
43
39
  end
44
40
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveModelSerializers
2
2
  module JsonapiEmbeddedRecordsDeserializer
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_serializers-jsonapi_embedded_records_deserializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Spieker
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: active_model_serializers
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.10.0.rc4
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.10.0.rc4
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement