modern 0.4.5 → 0.4.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acd2d0084d17c885739efdb6c43b4bb92b063fcc97926797096f669f92e5ff62
4
- data.tar.gz: 3108fb860bc3d119c66d7f86ec8e200e1c3f5be6abfe2ceeafa62ffc11fdbcf5
3
+ metadata.gz: b2dbaa306e3bd42e1f9b4d4e6cf8e2bdf9a1986cc138961a60e7710352734778
4
+ data.tar.gz: 45dd0f07b298064de38a2b51b0fe78ed8f50e4d483ac233d04c6ffd858d4b4f1
5
5
  SHA512:
6
- metadata.gz: 86f097562f5e6506f5ae6fb49261065d5a05120aafc0dfdcc3c996f7d14007a16eaabe34b753e09cfdef335cc752cd36e7bb6e888a7952c62533bcac6e1897c9
7
- data.tar.gz: 82ab10dacaed0357ba80395a1ad0745085925a9cc4d0f010e1f081bedd8ae738710aebdfefb8ffd5a95c65177bb892023d230a4d3e8a9aa8c9d37f64abaea8de
6
+ metadata.gz: 22777da99287bdc7ecd01cd355c1cbb552a67df52508f7c8627e2f70fed70a88b03f1d0f9d9f2798fc41a590073f6ab8aeae521a7e237b09cae48bd28cc25796
7
+ data.tar.gz: 7390e80f9f133208adbccacae00c333ca426e86f5e138a093f3c8eba820540ee4a48190e43eed10da34447fd5c7cb7fdf8dcdf57585629f1d1604ecf47125378
@@ -58,7 +58,7 @@ module Modern
58
58
  retval = validate_output!(route_content, retval, request, route)
59
59
 
60
60
  response.headers["Content-Type"] = output_converter.media_type
61
- response.write(output_converter.converter.call(route_content.type, retval))
61
+ response.write(output_converter.converter.call(route_content.type, retval, output_converter))
62
62
  end
63
63
  rescue StandardError => err
64
64
  route_logger.error(err)
@@ -3,6 +3,10 @@
3
3
  require 'modern/descriptor/converters/output/base'
4
4
 
5
5
  require 'json'
6
+ # TODO: is there an alternative implementation of #as_json with less junk?
7
+ require 'active_support/concern'
8
+ require 'active_model/serialization'
9
+ require 'active_model/serializers/json'
6
10
 
7
11
  # it gets confused by the blank line after the retval reassignment.
8
12
  # rubocop:disable Layout/EmptyLinesAroundArguments
@@ -13,7 +17,7 @@ module Modern
13
17
  module Output
14
18
  JSON = Base.new(
15
19
  media_type: "application/json",
16
- converter: proc do |_type, retval|
20
+ converter: proc do |_type, retval, _output_converter|
17
21
  retval =
18
22
  if retval.is_a?(Hash)
19
23
  retval.compact
@@ -25,8 +29,6 @@ module Modern
25
29
 
26
30
  if retval.respond_to?(:as_json)
27
31
  ::JSON.generate(retval.as_json)
28
- elsif retval.respond_to?(:to_json)
29
- retval.to_json
30
32
  else
31
33
  ::JSON.generate(retval)
32
34
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Modern
4
- VERSION = "0.4.5"
4
+ VERSION = "0.4.6"
5
5
  OPENAPI_VERSION = "3.0.1"
6
6
  end
@@ -42,6 +42,8 @@ Gem::Specification.new do |spec|
42
42
  spec.add_runtime_dependency "content-type", "~> 0.0.1"
43
43
  spec.add_runtime_dependency "http", "~> 3.0"
44
44
 
45
+ spec.add_runtime_dependency "activemodel", "~> 5.1"
46
+ spec.add_runtime_dependency "activesupport", "~> 5.1"
45
47
  spec.add_runtime_dependency "deep_dup", "~> 0.0.3"
46
48
  spec.add_runtime_dependency "deep_merge", "~> 1.2"
47
49
  spec.add_runtime_dependency "diff-lcs", "~> 1.3"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modern
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Ropple
@@ -206,6 +206,34 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '3.0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: activemodel
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '5.1'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '5.1'
223
+ - !ruby/object:Gem::Dependency
224
+ name: activesupport
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '5.1'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '5.1'
209
237
  - !ruby/object:Gem::Dependency
210
238
  name: deep_dup
211
239
  requirement: !ruby/object:Gem::Requirement