modern 0.4.5 → 0.4.6

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
  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