surrealist 1.3.4 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1442bb3902c4cc204433160a3ae4d079eb5dc017b7e334bf4e5295dbd9a80dd1
4
- data.tar.gz: 1801f742b22ffb29bc1dd274506e9b586d56d083f1c66563af9543fe91dd3eba
3
+ metadata.gz: 0a95bb3a7fc605daa57ca534526272f1b07c213955a27d3e0ece8aed665feb01
4
+ data.tar.gz: 2a7a0506b60272f0c4e48fd05ccf2ec3f7ca26ae48ad02fab3228fe654b8cfa0
5
5
  SHA512:
6
- metadata.gz: 02d1b2eb290eee36a0680da61d928ea8a2e0a5ec06da975dbff4439747576bc7147dfe0c80c1722ea1769895996c992c63a960bef19abb9555d2233cab99a7e7
7
- data.tar.gz: f3aa6d613311fa504d380b8ad3ce1909a1d0b77353187d4575e0405cae6f5b306782aa3a563fc46b858eb06f6795cd0c2a275b156a0757a441a53eb56e469ee7
6
+ metadata.gz: ead5a826a27d9947b642e4e0a1119798899df0d2fb9868b171e15219551fb7934fae2d0e628091ec22b17706ab447e9d0c90cd1e523fa859034b28f31a1b5520
7
+ data.tar.gz: 2db98f48230a322fc153f787cb33b4486c796473b9ceb653eb75a703624a35ca2e1b7ad72457bcd16533ef07f516c53c1ff984d81f0e7d22cbcb6c66909999ba
data/.rubocop.yml CHANGED
@@ -1,27 +1,29 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.5
3
+ NewCops: enable
4
+ SuggestExtensions: false
3
5
  Exclude:
4
6
  - './gemfiles/*gemfile'
5
7
  - './tmp/*'
6
8
 
7
- Documentation:
9
+ Style/Documentation:
8
10
  Exclude:
9
11
  - benchmarks/*rb
10
12
  - spec/**/*rb
11
13
 
12
14
  # Layout
13
15
 
14
- Layout/AlignParameters:
16
+ Layout/ParameterAlignment:
15
17
  Enabled: true
16
18
 
17
19
  Layout/EmptyLineBetweenDefs:
18
20
  Exclude:
19
21
  - spec/**/*rb
20
22
 
21
- Layout/IndentArray:
23
+ Layout/FirstArrayElementIndentation:
22
24
  EnforcedStyle: consistent
23
25
 
24
- Layout/IndentHash:
26
+ Layout/FirstHashElementIndentation:
25
27
  EnforcedStyle: consistent
26
28
 
27
29
  Layout/MultilineMethodCallIndentation:
@@ -36,6 +38,10 @@ Layout/SpaceInLambdaLiteral:
36
38
  Layout/ClosingParenthesisIndentation:
37
39
  Enabled: true
38
40
 
41
+ Layout/LineLength:
42
+ Exclude: [ benchmarks/*rb ]
43
+ Max: 110
44
+
39
45
  # Lint
40
46
  Lint/AmbiguousBlockAssociation:
41
47
  Enabled: false
@@ -52,6 +58,19 @@ Lint/NonLocalExitFromIterator:
52
58
  Lint/RescueType:
53
59
  Enabled: true
54
60
 
61
+ Lint/MissingSuper:
62
+ Enabled: false
63
+
64
+ Lint/ConstantDefinitionInBlock:
65
+ Exclude:
66
+ - spec/**/*rb
67
+
68
+ Lint/EmptyClass:
69
+ Enabled: false
70
+
71
+ Lint/SymbolConversion:
72
+ Enabled: false
73
+
55
74
  # Metrics
56
75
 
57
76
  Metrics/BlockLength:
@@ -65,10 +84,6 @@ Metrics/CyclomaticComplexity:
65
84
  Metrics/MethodLength:
66
85
  Max: 15
67
86
 
68
- Metrics/LineLength:
69
- Exclude: [benchmarks/*rb]
70
- Max: 110
71
-
72
87
  Metrics/PerceivedComplexity:
73
88
  Enabled: false
74
89
 
@@ -81,20 +96,9 @@ Naming/AccessorMethodName:
81
96
  Enabled: false
82
97
 
83
98
  Naming/PredicateName:
84
- NamePrefixBlacklist:
99
+ ForbiddenPrefixes:
85
100
  - is_
86
101
 
87
- # Performance
88
-
89
- Performance/Caller:
90
- Enabled: true
91
-
92
- Performance/Casecmp:
93
- Enabled: true
94
-
95
- Performance/UnfreezeString:
96
- Enabled: true
97
-
98
102
  # Style
99
103
 
100
104
  # ¯\_(ツ)_/¯
@@ -163,9 +167,10 @@ Style/TrailingCommaInHashLiteral:
163
167
  Style/MissingRespondToMissing:
164
168
  Enabled: false
165
169
 
166
- Style/MethodMissingSuper:
167
- Enabled: false
168
-
169
170
  Style/EvalWithLocation:
170
171
  Exclude:
171
172
  - spec/**/*.rb
173
+
174
+ Style/ClassVars:
175
+ Enabled: false
176
+
data/.travis.yml CHANGED
@@ -5,14 +5,12 @@ script: bundle exec rake
5
5
  matrix:
6
6
  fast_finish: true
7
7
  include:
8
- - rvm: ruby-head
8
+ - rvm: 3.0
9
+ gemfile: Gemfile
10
+ - rvm: 2.7
9
11
  gemfile: Gemfile
10
12
  - rvm: 2.6
11
13
  gemfile: Gemfile
12
14
  - rvm: 2.5
13
- gemfile: Gemfile
14
- - rvm: 2.4
15
- gemfile: Gemfile
16
- - rvm: 2.3
17
15
  gemfile: gemfiles/activerecord42.gemfile
18
16
 
data/Gemfile CHANGED
@@ -4,17 +4,17 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development, :test do
7
- gem 'active_model_serializers', '~> 0.10.0'
7
+ gem 'active_model_serializers', '~> 0.10'
8
8
  gem 'activerecord'
9
9
  gem 'benchmark-ips'
10
10
  gem 'blueprinter'
11
11
  gem 'coveralls', require: false
12
12
  gem 'dry-struct'
13
13
  gem 'dry-types'
14
- gem 'rom', '~> 4.0'
14
+ gem 'rom', '~> 5.0'
15
15
  gem 'rom-repository'
16
16
  gem 'rom-sql'
17
17
  gem 'sequel'
18
- gem 'sqlite3', '~> 1.4.1'
18
+ gem 'sqlite3', '~> 1.4'
19
19
  gem 'yard', require: false unless ENV['TRAVIS']
20
20
  end
data/README.md CHANGED
@@ -497,10 +497,10 @@ class Car
497
497
 
498
498
  json_schema do
499
499
  {
500
- age: Types::Coercible::Int,
500
+ age: Types::Coercible::Integer,
501
501
  brand: Types::Coercible::String,
502
- doors: Types::Int.optional,
503
- horsepower: Types::Strict::Int.constrained(gteq: 20),
502
+ doors: Types::Integer.optional,
503
+ horsepower: Types::Strict::Integer.constrained(gteq: 20),
504
504
  fuel_system: Types::Any,
505
505
  previous_owner: Types::String,
506
506
  }
data/Rakefile CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
5
6
 
6
7
  RSpec::Core::RakeTask.new(:spec)
8
+ RuboCop::RakeTask.new
7
9
 
8
- task default: :spec
10
+ task default: %i[rubocop spec]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
3
+ # rubocop:disable Metrics/MethodLength
4
4
  require_relative '../lib/surrealist'
5
5
  require 'benchmark/ips'
6
6
  require 'active_record'
@@ -36,7 +36,7 @@ end
36
36
  ActiveModelSerializers.config.adapter = :json
37
37
 
38
38
  def random_name
39
- ('a'..'z').to_a.shuffle.join('').first(10).capitalize
39
+ ('a'..'z').to_a.shuffle.join.first(10).capitalize
40
40
  end
41
41
 
42
42
  class User < ActiveRecord::Base
@@ -304,4 +304,4 @@ benchmark_associations_collection
304
304
  # Surrealist (associations): collection through Surrealist.surrealize_collection(): 2.4 i/s
305
305
  # Surrealist (associations): collection through Surrealist::Serializer: 2.4 i/s - 1.03x slower
306
306
  # AMS (associations): collection: 1.5 i/s - 1.60x slower
307
- # rubocop:enable Metrics/AbcSize,Metrics/MethodLength
307
+ # rubocop:enable Metrics/MethodLength
@@ -7,7 +7,7 @@ group :development, :test do
7
7
  gem 'coveralls', require: false
8
8
  gem 'dry-struct'
9
9
  gem 'dry-types'
10
- gem 'rom', '~> 3.0'
10
+ gem 'rom', '~> 5.0'
11
11
  gem 'rom-repository'
12
12
  gem 'rom-sql'
13
13
  gem 'sequel'
@@ -22,7 +22,7 @@ module Surrealist
22
22
  #
23
23
  # @return [Carrier] self if type checks were passed.
24
24
  def self.call(**args)
25
- new(args).sanitize!
25
+ new(**args).sanitize!
26
26
  end
27
27
 
28
28
  def initialize(**args)
@@ -15,7 +15,7 @@ module Surrealist
15
15
  return hash unless hash.is_a?(Hash)
16
16
 
17
17
  hash.each_with_object({}) do |(k, v), obj|
18
- obj[camelize_key(k, false)] = camelize_hash(v)
18
+ obj[camelize_key(k, first_upper: false)] = camelize_hash(v)
19
19
  end
20
20
  end
21
21
 
@@ -27,11 +27,12 @@ module Surrealist
27
27
  # @param [Boolean] first_upper should the first letter be capitalized.
28
28
  #
29
29
  # @return [String | Symbol] camelized key of a hash.
30
- def camelize_key(key, first_upper = true)
31
- if key.is_a? Symbol
32
- Surrealist::StringUtils.camelize(key.to_s, first_upper).to_sym
33
- elsif key.is_a? String
34
- Surrealist::StringUtils.camelize(key, first_upper)
30
+ def camelize_key(key, first_upper: true)
31
+ case key
32
+ when Symbol
33
+ Surrealist::StringUtils.camelize(key.to_s, first_upper: first_upper).to_sym
34
+ when String
35
+ Surrealist::StringUtils.camelize(key, first_upper: first_upper)
35
36
  else
36
37
  key
37
38
  end
@@ -49,10 +49,10 @@ module Surrealist
49
49
  # # => "{\"name\":\"Nikita\",\"age\":23}"
50
50
  # # For more examples see README
51
51
  def surrealize(**args)
52
- return args[:serializer].new(self).surrealize(args) if args[:serializer]
52
+ return args[:serializer].new(self).surrealize(**args) if args[:serializer]
53
53
 
54
54
  if (serializer = find_serializer(args[:for]))
55
- return serializer.new(self).surrealize(args)
55
+ return serializer.new(self).surrealize(**args)
56
56
  end
57
57
 
58
58
  Oj.dump(Surrealist.build_schema(instance: self, **args), mode: :compat)
@@ -60,10 +60,10 @@ module Surrealist
60
60
 
61
61
  # Invokes +Surrealist+'s class method +build_schema+
62
62
  def build_schema(**args)
63
- return args[:serializer].new(self).build_schema(args) if args[:serializer]
63
+ return args[:serializer].new(self).build_schema(**args) if args[:serializer]
64
64
 
65
65
  if (serializer = find_serializer(args[:for]))
66
- return serializer.new(self).build_schema(args)
66
+ return serializer.new(self).build_schema(**args)
67
67
  end
68
68
 
69
69
  Surrealist.build_schema(instance: self, **args)
@@ -81,7 +81,7 @@ module Surrealist
81
81
  # Checks whether object is a collection or an instance and serializes it
82
82
  def surrealize(**args)
83
83
  if Helper.collection?(object)
84
- Surrealist.surrealize_collection(object, args.merge(context: context))
84
+ Surrealist.surrealize_collection(object, **args.merge(context: context))
85
85
  else
86
86
  Surrealist.surrealize(instance: self, **args)
87
87
  end
@@ -90,7 +90,7 @@ module Surrealist
90
90
  # Passes build_schema to Surrealist
91
91
  def build_schema(**args)
92
92
  if Helper.collection?(object)
93
- build_collection_schema(args)
93
+ build_collection_schema(**args)
94
94
  else
95
95
  Surrealist.build_schema(instance: self, **args)
96
96
  end
@@ -102,7 +102,7 @@ module Surrealist
102
102
 
103
103
  # Maps collection and builds schema for each instance.
104
104
  def build_collection_schema(**args)
105
- object.map { |object| self.class.new(object, context).build_schema(args) }
105
+ object.map { |object| self.class.new(object, **context).build_schema(**args) }
106
106
  end
107
107
 
108
108
  # Methods not found inside serializer will be invoked on the object
@@ -33,7 +33,7 @@ module Surrealist
33
33
  # @param [Boolean] first_upper should the first letter be capitalized.
34
34
  #
35
35
  # @return [String] camelized string.
36
- def camelize(snake_string, first_upper = true)
36
+ def camelize(snake_string, first_upper: true)
37
37
  if first_upper
38
38
  snake_string.to_s.gsub(UNDERSCORE_REGEXP) { Regexp.last_match[1].capitalize }
39
39
  else
@@ -73,7 +73,7 @@ module Surrealist
73
73
  Surrealist::ExceptionRaiser.raise_invalid_nesting!(nesting_level) unless nesting_level.positive?
74
74
 
75
75
  klass.split(NAMESPACES_SEPARATOR).last(nesting_level).reverse!.inject({}) do |a, n|
76
- key = (camelize ? camelize(uncapitalize(n), false) : underscore(n)).to_sym
76
+ key = (camelize ? camelize(uncapitalize(n), first_upper: false) : underscore(n)).to_sym
77
77
 
78
78
  { key => a }
79
79
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Surrealist
4
4
  # Defines the version of Surrealist
5
- VERSION = '1.3.4'
5
+ VERSION = '2.0.0'
6
6
  end
@@ -11,8 +11,8 @@ module Surrealist
11
11
  # @param [String] klass instance's class name.
12
12
  #
13
13
  # @return [Hash] a wrapped hash.
14
- def wrap(hash, carrier, klass = false)
15
- namespaces_condition = carrier.include_namespaces || carrier.namespaces_nesting_level != DEFAULT_NESTING_LEVEL # rubocop:disable Metrics/LineLength
14
+ def wrap(hash, carrier, klass: false)
15
+ namespaces_condition = carrier.include_namespaces || carrier.namespaces_nesting_level != DEFAULT_NESTING_LEVEL # rubocop:disable Layout/LineLength
16
16
 
17
17
  if !klass && (carrier.include_root || namespaces_condition)
18
18
  Surrealist::ExceptionRaiser.raise_unknown_root!
@@ -56,7 +56,7 @@ module Surrealist
56
56
  # @return [Hash] a hash with schema wrapped inside a root key.
57
57
  def wrap_schema_into_root(schema, carrier, root)
58
58
  root_key = if carrier.camelize
59
- Surrealist::StringUtils.camelize(root, false).to_sym
59
+ Surrealist::StringUtils.camelize(root, first_upper: false).to_sym
60
60
  else
61
61
  Surrealist::StringUtils.underscore(root).to_sym
62
62
  end
data/lib/surrealist.rb CHANGED
@@ -59,7 +59,7 @@ module Surrealist
59
59
  Surrealist::ExceptionRaiser.raise_invalid_collection! unless Helper.collection?(collection)
60
60
 
61
61
  result = collection.map do |object|
62
- Helper.surrealist?(object.class) ? __build_schema(object, args) : object
62
+ Helper.surrealist?(object.class) ? __build_schema(object, **args) : object
63
63
  end
64
64
 
65
65
  args[:raw] ? result : Oj.dump(result, mode: :compat)
@@ -128,13 +128,13 @@ module Surrealist
128
128
  schema = Surrealist::VarsHelper.find_schema(instance.class)
129
129
  Surrealist::ExceptionRaiser.raise_unknown_schema!(instance) if schema.nil?
130
130
 
131
- parameters = config ? config.merge(args) : args
131
+ parameters = config ? config.merge(**args) : args
132
132
 
133
133
  # TODO: Refactor (something pipeline-like would do here, perhaps a builder of some sort)
134
- carrier = Surrealist::Carrier.call(parameters)
134
+ carrier = Surrealist::Carrier.call(**parameters)
135
135
  copied_schema = Surrealist::Copier.deep_copy(schema)
136
136
  built_schema = Builder.new(carrier, copied_schema, instance).call
137
- wrapped_schema = Surrealist::Wrapper.wrap(built_schema, carrier, instance.class.name)
137
+ wrapped_schema = Surrealist::Wrapper.wrap(built_schema, carrier, klass: instance.class.name)
138
138
  carrier.camelize ? Surrealist::HashUtils.camelize_hash(wrapped_schema) : wrapped_schema
139
139
  end
140
140
  # rubocop:enable Metrics/AbcSize
@@ -178,10 +178,10 @@ module Surrealist
178
178
  # provided in the object's class. Values will be taken from the return values
179
179
  # of appropriate methods from the object.
180
180
  def __build_schema(object, **args)
181
- return args[:serializer].new(object, args[:context].to_h).build_schema(args) if args[:serializer]
181
+ return args[:serializer].new(object, **args[:context].to_h).build_schema(**args) if args[:serializer]
182
182
 
183
183
  if (serializer = Surrealist::VarsHelper.find_serializer(object.class, tag: args[:for]))
184
- serializer.new(object, args[:context].to_h).build_schema(args)
184
+ serializer.new(object, **args[:context].to_h).build_schema(**args)
185
185
  else
186
186
  build_schema(instance: object, **args)
187
187
  end
data/surrealist.gemspec CHANGED
@@ -22,13 +22,13 @@ Gem::Specification.new do |spec|
22
22
  spec.bindir = 'exe'
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
- spec.required_ruby_version = '>= 2.3.0'
25
+ spec.required_ruby_version = '>= 2.5.0'
26
26
 
27
- spec.add_runtime_dependency 'oj', '~> 3.0'
27
+ spec.add_runtime_dependency 'oj', '~> 3.11'
28
28
 
29
- spec.add_development_dependency 'bundler'
30
- spec.add_development_dependency 'pry', '~> 0.12'
31
- spec.add_development_dependency 'rake', '~> 12.3'
32
- spec.add_development_dependency 'rspec', '~> 3.8'
33
- spec.add_development_dependency 'rubocop', '~> 0.66'
29
+ spec.add_development_dependency 'bundler', '~> 2.0'
30
+ spec.add_development_dependency 'pry', '~> 0.13'
31
+ spec.add_development_dependency 'rake', '~> 13.0'
32
+ spec.add_development_dependency 'rspec', '~> 3.10'
33
+ spec.add_development_dependency 'rubocop', '~> 1.9'
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surrealist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Esaulov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-18 00:00:00.000000000 Z
11
+ date: 2021-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -16,84 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '3.11'
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: '3.0'
26
+ version: '3.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '2.0'
34
34
  type: :development
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'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.12'
47
+ version: '0.13'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.12'
54
+ version: '0.13'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '12.3'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '12.3'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.8'
75
+ version: '3.10'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.8'
82
+ version: '3.10'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.66'
89
+ version: '1.9'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.66'
96
+ version: '1.9'
97
97
  description: A gem that provides DSL for serialization of plain old Ruby objects to
98
98
  JSON in a declarative style by defining a `schema`. It also provides a trivial type
99
99
  checking in the runtime before serialization.
@@ -143,7 +143,7 @@ homepage: https://github.com/nesaulov/surrealist
143
143
  licenses:
144
144
  - MIT
145
145
  metadata: {}
146
- post_install_message:
146
+ post_install_message:
147
147
  rdoc_options: []
148
148
  require_paths:
149
149
  - lib
@@ -151,15 +151,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - ">="
153
153
  - !ruby/object:Gem::Version
154
- version: 2.3.0
154
+ version: 2.5.0
155
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  requirements: []
161
- rubygems_version: 3.0.3
162
- signing_key:
161
+ rubygems_version: 3.2.3
162
+ signing_key:
163
163
  specification_version: 4
164
164
  summary: A gem that provides DSL for serialization of plain old Ruby objects to JSON
165
165
  in a declarative style.