jsonapi-resources 0.8.3 → 0.9.0.beta1

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.
@@ -1,5 +1,5 @@
1
1
  module JSONAPI
2
2
  module Resources
3
- VERSION = '0.8.3'
3
+ VERSION = '0.9.0.beta1'
4
4
  end
5
5
  end
@@ -1,7 +1,8 @@
1
1
  module JSONAPI
2
2
  class ResponseDocument
3
- def initialize(operation_results, options = {})
3
+ def initialize(operation_results, serializer, options = {})
4
4
  @operation_results = operation_results
5
+ @serializer = serializer
5
6
  @options = options
6
7
 
7
8
  @key_formatter = @options.fetch(:key_formatter, JSONAPI.configuration.key_formatter)
@@ -29,18 +30,6 @@ module JSONAPI
29
30
 
30
31
  private
31
32
 
32
- def serializer
33
- @serializer ||= @options.fetch(:resource_serializer_klass, JSONAPI::ResourceSerializer).new(
34
- @options.fetch(:primary_resource_klass),
35
- include_directives: @options[:include_directives],
36
- fields: @options[:fields],
37
- base_url: @options.fetch(:base_url, ''),
38
- key_formatter: @key_formatter,
39
- route_formatter: @options.fetch(:route_formatter, JSONAPI.configuration.route_formatter),
40
- serialization_options: @options.fetch(:serialization_options, {})
41
- )
42
- end
43
-
44
33
  # Rolls up the top level meta data from the base_meta, the set of operations,
45
34
  # and the result of each operation. The keys are then formatted.
46
35
  def top_level_meta
@@ -60,7 +49,7 @@ module JSONAPI
60
49
  end
61
50
  end
62
51
 
63
- meta.deep_transform_keys { |key| @key_formatter.format(key) }
52
+ meta.as_json.deep_transform_keys { |key| @key_formatter.format(key) }
64
53
  end
65
54
 
66
55
  # Rolls up the top level links from the base_links, the set of operations,
@@ -78,9 +67,9 @@ module JSONAPI
78
67
  result.pagination_params.each_pair do |link_name, params|
79
68
  if result.is_a?(JSONAPI::RelatedResourcesOperationResult)
80
69
  relationship = result.source_resource.class._relationships[result._type.to_sym]
81
- links[link_name] = serializer.link_builder.relationships_related_link(result.source_resource, relationship, query_params(params))
70
+ links[link_name] = @serializer.link_builder.relationships_related_link(result.source_resource, relationship, query_params(params))
82
71
  else
83
- links[link_name] = serializer.query_link(query_params(params))
72
+ links[link_name] = @serializer.query_link(query_params(params))
84
73
  end
85
74
  end
86
75
  end
@@ -117,11 +106,11 @@ module JSONAPI
117
106
 
118
107
  case result
119
108
  when JSONAPI::ResourceOperationResult
120
- serializer.serialize_to_hash(result.resource)
109
+ @serializer.serialize_to_hash(result.resource)
121
110
  when JSONAPI::ResourcesOperationResult
122
- serializer.serialize_to_hash(result.resources)
111
+ @serializer.serialize_to_hash(result.resources)
123
112
  when JSONAPI::LinksObjectOperationResult
124
- serializer.serialize_to_links_hash(result.parent_resource,
113
+ @serializer.serialize_to_links_hash(result.parent_resource,
125
114
  result.relationship)
126
115
  when JSONAPI::OperationResult
127
116
  {}
@@ -138,7 +127,7 @@ module JSONAPI
138
127
  end
139
128
  end
140
129
 
141
- serializer.serialize_to_hash(resources)
130
+ @serializer.serialize_to_hash(resources)
142
131
  end
143
132
  end
144
133
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonapi-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Gebhardt
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-01-19 00:00:00.000000000 Z
12
+ date: 2016-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -110,19 +110,33 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rails
113
+ name: activerecord
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: '4.0'
118
+ version: '4.1'
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: '4.0'
125
+ version: '4.1'
126
+ - !ruby/object:Gem::Dependency
127
+ name: railties
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '4.1'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '4.1'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: concurrent-ruby
128
142
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +169,9 @@ files:
155
169
  - lib/generators/jsonapi/templates/jsonapi_resource.rb
156
170
  - lib/jsonapi-resources.rb
157
171
  - lib/jsonapi/acts_as_resource_controller.rb
172
+ - lib/jsonapi/cached_resource_fragment.rb
158
173
  - lib/jsonapi/callbacks.rb
174
+ - lib/jsonapi/compiled_json.rb
159
175
  - lib/jsonapi/configuration.rb
160
176
  - lib/jsonapi/error.rb
161
177
  - lib/jsonapi/error_codes.rb
@@ -193,15 +209,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
193
209
  requirements:
194
210
  - - ">="
195
211
  - !ruby/object:Gem::Version
196
- version: '2.0'
212
+ version: '2.1'
197
213
  required_rubygems_version: !ruby/object:Gem::Requirement
198
214
  requirements:
199
- - - ">="
215
+ - - ">"
200
216
  - !ruby/object:Gem::Version
201
- version: '0'
217
+ version: 1.3.1
202
218
  requirements: []
203
219
  rubyforge_project:
204
- rubygems_version: 2.6.8
220
+ rubygems_version: 2.5.1
205
221
  signing_key:
206
222
  specification_version: 4
207
223
  summary: Easily support JSON API in Rails.