avromatic 2.2.2 → 2.3.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +85 -0
  3. data/.rubocop.yml +3 -0
  4. data/.ruby-version +1 -1
  5. data/Appraisals +34 -22
  6. data/CHANGELOG.md +16 -0
  7. data/README.md +3 -3
  8. data/avromatic.gemspec +7 -6
  9. data/bin/console +4 -3
  10. data/gemfiles/{rails5_0.gemfile → avro1_10_rails5_2.gemfile} +3 -3
  11. data/gemfiles/avro1_10_rails6_0.gemfile +9 -0
  12. data/gemfiles/avro1_10_rails6_1.gemfile +9 -0
  13. data/gemfiles/{rails5_2.gemfile → avro1_8_rails5_2.gemfile} +0 -0
  14. data/gemfiles/{rails5_1.gemfile → avro1_9_rails5_2.gemfile} +3 -3
  15. data/gemfiles/{rails6_0.gemfile → avro1_9_rails6_0.gemfile} +1 -1
  16. data/gemfiles/{avro_patches_rails5_0.gemfile → avro1_9_rails6_1.gemfile} +3 -3
  17. data/gemfiles/avro_patches_rails5_2.gemfile +1 -1
  18. data/gemfiles/avro_patches_rails6_1.gemfile +9 -0
  19. data/lib/avromatic.rb +0 -5
  20. data/lib/avromatic/io.rb +1 -7
  21. data/lib/avromatic/io/datum_reader.rb +18 -68
  22. data/lib/avromatic/io/datum_writer.rb +5 -11
  23. data/lib/avromatic/io/union_datum.rb +25 -0
  24. data/lib/avromatic/messaging.rb +4 -2
  25. data/lib/avromatic/model/attributes.rb +6 -6
  26. data/lib/avromatic/model/configurable.rb +24 -0
  27. data/lib/avromatic/model/messaging_serialization.rb +2 -1
  28. data/lib/avromatic/model/raw_serialization.rb +14 -11
  29. data/lib/avromatic/model/types/abstract_timestamp_type.rb +1 -1
  30. data/lib/avromatic/model/types/abstract_type.rb +3 -1
  31. data/lib/avromatic/model/types/array_type.rb +2 -2
  32. data/lib/avromatic/model/types/boolean_type.rb +1 -1
  33. data/lib/avromatic/model/types/custom_type.rb +1 -1
  34. data/lib/avromatic/model/types/date_type.rb +1 -1
  35. data/lib/avromatic/model/types/enum_type.rb +1 -1
  36. data/lib/avromatic/model/types/fixed_type.rb +1 -1
  37. data/lib/avromatic/model/types/float_type.rb +1 -1
  38. data/lib/avromatic/model/types/integer_type.rb +1 -1
  39. data/lib/avromatic/model/types/map_type.rb +2 -2
  40. data/lib/avromatic/model/types/null_type.rb +1 -1
  41. data/lib/avromatic/model/types/record_type.rb +1 -5
  42. data/lib/avromatic/model/types/string_type.rb +1 -1
  43. data/lib/avromatic/model/types/timestamp_micros_type.rb +4 -4
  44. data/lib/avromatic/model/types/timestamp_millis_type.rb +4 -4
  45. data/lib/avromatic/model/types/union_type.rb +11 -8
  46. data/lib/avromatic/version.rb +1 -1
  47. metadata +62 -47
  48. data/.travis.yml +0 -23
  49. data/gemfiles/avro_patches_rails5_1.gemfile +0 -9
  50. data/lib/avromatic/patches.rb +0 -18
  51. data/lib/avromatic/patches/schema_validator_patch.rb +0 -39
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avromatic
4
- VERSION = '2.2.2'
4
+ VERSION = '2.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avromatic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salsify Engineering
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-03 00:00:00.000000000 Z
11
+ date: 2020-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '6.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '6.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activesupport
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '5.0'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '6.1'
42
+ version: '6.2'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: '5.0'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '6.1'
52
+ version: '6.2'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: avro
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: 1.7.7
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '1.10'
62
+ version: '1.11'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: 1.7.7
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '1.10'
72
+ version: '1.11'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: avro_schema_registry-client
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -112,6 +112,20 @@ dependencies:
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: appraisal
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
115
129
  - !ruby/object:Gem::Dependency
116
130
  name: avro-builder
117
131
  requirement: !ruby/object:Gem::Requirement
@@ -140,6 +154,20 @@ dependencies:
140
154
  - - ">="
141
155
  - !ruby/object:Gem::Version
142
156
  version: '1.11'
157
+ - !ruby/object:Gem::Dependency
158
+ name: overcommit
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - '='
162
+ - !ruby/object:Gem::Version
163
+ version: 0.35.0
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - '='
169
+ - !ruby/object:Gem::Version
170
+ version: 0.35.0
143
171
  - !ruby/object:Gem::Dependency
144
172
  name: rake
145
173
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +197,7 @@ dependencies:
169
197
  - !ruby/object:Gem::Version
170
198
  version: '3.0'
171
199
  - !ruby/object:Gem::Dependency
172
- name: simplecov
200
+ name: rspec_junit_formatter
173
201
  requirement: !ruby/object:Gem::Requirement
174
202
  requirements:
175
203
  - - ">="
@@ -183,21 +211,21 @@ dependencies:
183
211
  - !ruby/object:Gem::Version
184
212
  version: '0'
185
213
  - !ruby/object:Gem::Dependency
186
- name: webmock
214
+ name: salsify_rubocop
187
215
  requirement: !ruby/object:Gem::Requirement
188
216
  requirements:
189
- - - ">="
217
+ - - "~>"
190
218
  - !ruby/object:Gem::Version
191
- version: '0'
219
+ version: 0.52.1.1
192
220
  type: :development
193
221
  prerelease: false
194
222
  version_requirements: !ruby/object:Gem::Requirement
195
223
  requirements:
196
- - - ">="
224
+ - - "~>"
197
225
  - !ruby/object:Gem::Version
198
- version: '0'
226
+ version: 0.52.1.1
199
227
  - !ruby/object:Gem::Dependency
200
- name: appraisal
228
+ name: simplecov
201
229
  requirement: !ruby/object:Gem::Requirement
202
230
  requirements:
203
231
  - - ">="
@@ -211,33 +239,19 @@ dependencies:
211
239
  - !ruby/object:Gem::Version
212
240
  version: '0'
213
241
  - !ruby/object:Gem::Dependency
214
- name: overcommit
215
- requirement: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - '='
218
- - !ruby/object:Gem::Version
219
- version: 0.35.0
220
- type: :development
221
- prerelease: false
222
- version_requirements: !ruby/object:Gem::Requirement
223
- requirements:
224
- - - '='
225
- - !ruby/object:Gem::Version
226
- version: 0.35.0
227
- - !ruby/object:Gem::Dependency
228
- name: salsify_rubocop
242
+ name: webmock
229
243
  requirement: !ruby/object:Gem::Requirement
230
244
  requirements:
231
- - - "~>"
245
+ - - ">="
232
246
  - !ruby/object:Gem::Version
233
- version: 0.52.1.1
247
+ version: '0'
234
248
  type: :development
235
249
  prerelease: false
236
250
  version_requirements: !ruby/object:Gem::Requirement
237
251
  requirements:
238
- - - "~>"
252
+ - - ">="
239
253
  - !ruby/object:Gem::Version
240
- version: 0.52.1.1
254
+ version: '0'
241
255
  - !ruby/object:Gem::Dependency
242
256
  name: sinatra
243
257
  requirement: !ruby/object:Gem::Requirement
@@ -259,13 +273,13 @@ executables: []
259
273
  extensions: []
260
274
  extra_rdoc_files: []
261
275
  files:
276
+ - ".circleci/config.yml"
262
277
  - ".gitignore"
263
278
  - ".overcommit.yml"
264
279
  - ".rspec"
265
280
  - ".rubocop.yml"
266
281
  - ".ruby-gemset"
267
282
  - ".ruby-version"
268
- - ".travis.yml"
269
283
  - Appraisals
270
284
  - CHANGELOG.md
271
285
  - Gemfile
@@ -276,18 +290,21 @@ files:
276
290
  - bin/console
277
291
  - bin/setup
278
292
  - gemfiles/.bundle/config
279
- - gemfiles/avro_patches_rails5_0.gemfile
280
- - gemfiles/avro_patches_rails5_1.gemfile
293
+ - gemfiles/avro1_10_rails5_2.gemfile
294
+ - gemfiles/avro1_10_rails6_0.gemfile
295
+ - gemfiles/avro1_10_rails6_1.gemfile
296
+ - gemfiles/avro1_8_rails5_2.gemfile
297
+ - gemfiles/avro1_9_rails5_2.gemfile
298
+ - gemfiles/avro1_9_rails6_0.gemfile
299
+ - gemfiles/avro1_9_rails6_1.gemfile
281
300
  - gemfiles/avro_patches_rails5_2.gemfile
282
301
  - gemfiles/avro_patches_rails6_0.gemfile
283
- - gemfiles/rails5_0.gemfile
284
- - gemfiles/rails5_1.gemfile
285
- - gemfiles/rails5_2.gemfile
286
- - gemfiles/rails6_0.gemfile
302
+ - gemfiles/avro_patches_rails6_1.gemfile
287
303
  - lib/avromatic.rb
288
304
  - lib/avromatic/io.rb
289
305
  - lib/avromatic/io/datum_reader.rb
290
306
  - lib/avromatic/io/datum_writer.rb
307
+ - lib/avromatic/io/union_datum.rb
291
308
  - lib/avromatic/messaging.rb
292
309
  - lib/avromatic/model.rb
293
310
  - lib/avromatic/model/attributes.rb
@@ -325,8 +342,6 @@ files:
325
342
  - lib/avromatic/model/validation_error.rb
326
343
  - lib/avromatic/model/value_object.rb
327
344
  - lib/avromatic/model_registry.rb
328
- - lib/avromatic/patches.rb
329
- - lib/avromatic/patches/schema_validator_patch.rb
330
345
  - lib/avromatic/railtie.rb
331
346
  - lib/avromatic/rspec.rb
332
347
  - lib/avromatic/version.rb
@@ -335,7 +350,7 @@ homepage: https://github.com/salsify/avromatic.git
335
350
  licenses:
336
351
  - MIT
337
352
  metadata: {}
338
- post_install_message:
353
+ post_install_message:
339
354
  rdoc_options: []
340
355
  require_paths:
341
356
  - lib
@@ -350,8 +365,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
365
  - !ruby/object:Gem::Version
351
366
  version: '0'
352
367
  requirements: []
353
- rubygems_version: 3.0.6
354
- signing_key:
368
+ rubygems_version: 3.0.8
369
+ signing_key:
355
370
  specification_version: 4
356
371
  summary: Generate Ruby models from Avro schemas
357
372
  test_files: []
@@ -1,23 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.6.3
4
- - 2.5.5
5
- - 2.4.6
6
- before_script:
7
- - bundle exec rubocop
8
- gemfile:
9
- - gemfiles/rails5_0.gemfile
10
- - gemfiles/rails5_1.gemfile
11
- - gemfiles/rails5_2.gemfile
12
- - gemfiles/rails6_0.gemfile
13
- - gemfiles/avro_patches_rails5_0.gemfile
14
- - gemfiles/avro_patches_rails5_1.gemfile
15
- - gemfiles/avro_patches_rails5_2.gemfile
16
- - gemfiles/avro_patches_rails6_0.gemfile
17
- script: bundle exec rspec
18
- matrix:
19
- exclude:
20
- - rvm: 2.4.6
21
- gemfile: gemfiles/rails6_0.gemfile
22
- - rvm: 2.4.6
23
- gemfile: gemfiles/avro_patches_rails6_0.gemfile
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "avro-patches", ">= 0.4.1"
6
- gem "activesupport", "~> 5.1.4"
7
- gem "activemodel", "~> 5.1.4"
8
-
9
- gemspec path: "../"
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- loaded_avro_patches = begin
4
- require 'avro-patches'
5
- true
6
- rescue LoadError
7
- false
8
- end
9
-
10
- if loaded_avro_patches
11
- require 'avromatic/patches/schema_validator_patch'
12
- avro_patches_version = Gem::Version.new(AvroPatches::VERSION)
13
- if avro_patches_version < Gem::Version.new('0.4.0')
14
- Avro::SchemaValidator.singleton_class.prepend(Avromatic::Patches::SchemaValidatorPatch)
15
- else
16
- Avro::SchemaValidator.singleton_class.prepend(Avromatic::Patches::SchemaValidatorPatchV040)
17
- end
18
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avromatic
4
- module Patches
5
- module SchemaValidatorPatch
6
- # This method replaces validate_recursive in AvroPatches::LogicalTypes::SchemaValidatorPatch
7
- # to enable validating datums that contain an encoding provider.
8
- def validate_recursive(expected_schema, logical_datum, path, result, encoded = false)
9
- datum = resolve_datum(expected_schema, logical_datum, encoded)
10
- case expected_schema.type_sym
11
- when :record, :error, :request
12
- if datum.is_a?(Hash) && datum.key?(Avromatic::IO::ENCODING_PROVIDER)
13
- return if expected_schema.sha256_resolution_fingerprint ==
14
- datum[Avromatic::IO::ENCODING_PROVIDER].value_avro_schema.sha256_resolution_fingerprint
15
- raise Avro::SchemaValidator::ValidationError
16
- end
17
- end
18
- super(expected_schema, logical_datum, path, result, encoded)
19
- end
20
- end
21
-
22
- module SchemaValidatorPatchV040
23
- # This method replaces validate_recursive in AvroPatches::LogicalTypes::SchemaValidatorPatch
24
- # to enable validating datums that contain an encoding provider.
25
- def validate_recursive(expected_schema, logical_datum, path, result, options = {})
26
- datum = resolve_datum(expected_schema, logical_datum, options[:encoded])
27
- case expected_schema.type_sym
28
- when :record, :error, :request
29
- if datum.is_a?(Hash) && datum.key?(Avromatic::IO::ENCODING_PROVIDER)
30
- return if expected_schema.sha256_resolution_fingerprint ==
31
- datum[Avromatic::IO::ENCODING_PROVIDER].value_avro_schema.sha256_resolution_fingerprint
32
- raise Avro::SchemaValidator::ValidationError
33
- end
34
- end
35
- super(expected_schema, logical_datum, path, result, options)
36
- end
37
- end
38
- end
39
- end