avro-builder 0.10.0 → 0.11.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 +4 -4
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/.travis.yml +4 -1
- data/Appraisals +7 -0
- data/CHANGELOG.md +10 -0
- data/README.md +56 -0
- data/Rakefile +10 -2
- data/avro-builder.gemspec +1 -0
- data/bin/setup +1 -0
- data/gemfiles/avro_official.gemfile +7 -0
- data/gemfiles/avro_salsify_fork.gemfile +7 -0
- data/lib/avro/builder/anonymous_types.rb +34 -0
- data/lib/avro/builder/dsl.rb +7 -9
- data/lib/avro/builder/field.rb +22 -18
- data/lib/avro/builder/type_factory.rb +2 -0
- data/lib/avro/builder/types.rb +0 -1
- data/lib/avro/builder/types/array_type.rb +2 -5
- data/lib/avro/builder/types/complex_type.rb +7 -0
- data/lib/avro/builder/types/map_type.rb +2 -5
- data/lib/avro/builder/types/named_type.rb +12 -9
- data/lib/avro/builder/types/record_type.rb +2 -0
- data/lib/avro/builder/types/type.rb +11 -3
- data/lib/avro/builder/types/type_referencer.rb +6 -4
- data/lib/avro/builder/types/union_type.rb +4 -1
- data/lib/avro/builder/version.rb +1 -1
- metadata +19 -2
- data/lib/avro/builder/types/configurable_type.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 927dca1e52261de526556bb1a692ac90406d10bf
|
4
|
+
data.tar.gz: 89e990b81db93413c7f055c1ec95eb23a237b8f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c69e346811dfbd2574602bd6724b83dc2421a822123c5973b8b6def6b8b9aa552231af78c7778cf2feaac9054ea72145263f2ce41ce5b43eb7351f099dfb480e
|
7
|
+
data.tar.gz: aeb7b896dbe7146a7b4e8d0c4e7eb5533f48c7e15179ff3899ef74f733a91230ec4b9693268bad38792cca40739e7a68265abfcf91cae7c033ebda99d5d51f69
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/.travis.yml
CHANGED
data/Appraisals
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# avro-builder changelog
|
2
2
|
|
3
|
+
## v0.11.0
|
4
|
+
- Add support for generating schemas that contain logical types. The official
|
5
|
+
Ruby `avro` gem does not yet support logical types. The `avro-salsify-fork` gem
|
6
|
+
can be used to encode and decode logical types.
|
7
|
+
- Add support for `union`, `map`, and `array` methods to embed those types
|
8
|
+
within other complex types.
|
9
|
+
- Add methods for primitives types (`string`, `int`, `long`, `float`, etc)
|
10
|
+
that allow those types, including a logical type attribute, to be embedded
|
11
|
+
within complex types.
|
12
|
+
|
3
13
|
## v0.10.0
|
4
14
|
- Include DSL file line numbers in stack traces.
|
5
15
|
- Add optional `filename` keyword argument to `Avro::Builder.build` and
|
data/README.md
CHANGED
@@ -173,6 +173,20 @@ record :my_record_with_named do
|
|
173
173
|
end
|
174
174
|
```
|
175
175
|
|
176
|
+
### Complex Types
|
177
|
+
|
178
|
+
Array, maps and unions can each be embedded within another complex type using
|
179
|
+
methods that match the type name:
|
180
|
+
|
181
|
+
```ruby
|
182
|
+
record :complex_types do
|
183
|
+
required :array_of_unions, :array, items: union(:int, :string)
|
184
|
+
required :array_or_map, :union, types: [array(:int), map(:int)]
|
185
|
+
end
|
186
|
+
```
|
187
|
+
|
188
|
+
For more on unions see [below](#unions).
|
189
|
+
|
176
190
|
### Nested Records
|
177
191
|
|
178
192
|
Nested records may be created by referring to the name of the previously
|
@@ -240,6 +254,48 @@ end
|
|
240
254
|
For an optional union, `null` is automatically added as the first type for
|
241
255
|
the union and the field defaults to `null`.
|
242
256
|
|
257
|
+
### Logical Types
|
258
|
+
|
259
|
+
The DSL supports setting a logical type on any type except a union. The logical
|
260
|
+
types defined in the Avro [spec](https://avro.apache.org/docs/1.8.1/spec.html#Logical+Types)
|
261
|
+
are more limited.
|
262
|
+
|
263
|
+
The official Ruby `avro` gem does not yet support logical types:
|
264
|
+
[AVRO-1695](https://issues.apache.org/jira/browse/AVRO-1695).
|
265
|
+
|
266
|
+
There is a `avro-salsify-fork` gem released from this
|
267
|
+
[fork](https://github.com/salsify/avro) that includes changes to support
|
268
|
+
encoding and decoding logical types. To use this gem, reference it in your Gemfile:
|
269
|
+
|
270
|
+
```ruby
|
271
|
+
gem 'avro-salsify-fork', require: 'avro'
|
272
|
+
```
|
273
|
+
|
274
|
+
A logical type can be specified for a field using the `logical_type` attribute:
|
275
|
+
|
276
|
+
```ruby
|
277
|
+
record :with_timestamp
|
278
|
+
required :created_at, :long, logical_type: 'timestamp-micros'
|
279
|
+
end
|
280
|
+
```
|
281
|
+
|
282
|
+
Primitive types with a logical type can also be embedded within complex types
|
283
|
+
using either the generic `type` method:
|
284
|
+
|
285
|
+
```ruby
|
286
|
+
record :with_date_array
|
287
|
+
required :date_array, :array, type(:int, logical_type: date)
|
288
|
+
end
|
289
|
+
```
|
290
|
+
|
291
|
+
Or using a primitive type specific method:
|
292
|
+
|
293
|
+
```ruby
|
294
|
+
record :with_date_array
|
295
|
+
required :date_array, :array, int(logical_type: date)
|
296
|
+
end
|
297
|
+
```
|
298
|
+
|
243
299
|
### Auto-loading and Imports
|
244
300
|
|
245
301
|
Specify paths to search for definitions:
|
data/Rakefile
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
+
require 'appraisal/task'
|
3
4
|
|
4
|
-
RSpec::Core::RakeTask.new(:
|
5
|
+
RSpec::Core::RakeTask.new(:default_spec)
|
5
6
|
|
6
|
-
|
7
|
+
Appraisal::Task.new
|
8
|
+
|
9
|
+
if !ENV['APPRAISAL_INITIALIZED']
|
10
|
+
task default: :appraisal
|
11
|
+
task spec: :appraisal
|
12
|
+
else
|
13
|
+
task default: :default_spec
|
14
|
+
end
|
data/avro-builder.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_runtime_dependency 'avro', '>= 1.7.0'
|
23
23
|
|
24
|
+
spec.add_development_dependency 'appraisal'
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
25
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
26
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
data/bin/setup
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Avro
|
2
|
+
module Builder
|
3
|
+
|
4
|
+
# This concern is included by contexts where anonymous types can be defined.
|
5
|
+
module AnonymousTypes
|
6
|
+
include Avro::Builder::TypeFactory
|
7
|
+
|
8
|
+
Avro::Schema::PRIMITIVE_TYPES_SYM.each do |type_name|
|
9
|
+
define_method(type_name) do |options = {}, &block|
|
10
|
+
type(type_name, options, &block)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def union(*types, &block)
|
15
|
+
type(__method__, { types: types }, &block)
|
16
|
+
end
|
17
|
+
|
18
|
+
def array(items, options = {}, &block)
|
19
|
+
type(__method__, { items: items }.merge(options), &block)
|
20
|
+
end
|
21
|
+
|
22
|
+
def map(values, options = {}, &block)
|
23
|
+
type(__method__, { values: values }.merge(options), &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def type(type_name, options = {}, &block)
|
27
|
+
create_and_configure_builtin_type(type_name,
|
28
|
+
cache: cache,
|
29
|
+
internal: options,
|
30
|
+
&block)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/avro/builder/dsl.rb
CHANGED
@@ -5,6 +5,7 @@ require 'avro/builder/dsl_attributes'
|
|
5
5
|
require 'avro/builder/namespaceable'
|
6
6
|
require 'avro/builder/definition_cache'
|
7
7
|
require 'avro/builder/type_factory'
|
8
|
+
require 'avro/builder/anonymous_types'
|
8
9
|
require 'avro/builder/types'
|
9
10
|
require 'avro/builder/field'
|
10
11
|
require 'avro/builder/record'
|
@@ -89,15 +90,12 @@ module Avro
|
|
89
90
|
end
|
90
91
|
|
91
92
|
def create_named_type(name, avro_type_name, options = {}, &block)
|
92
|
-
create_and_configure_builtin_type(avro_type_name,
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
type.validate!
|
99
|
-
@last_object = type
|
100
|
-
end
|
93
|
+
@last_object = create_and_configure_builtin_type(avro_type_name,
|
94
|
+
cache: cache,
|
95
|
+
internal: { _name: name,
|
96
|
+
namespace: namespace },
|
97
|
+
options: options,
|
98
|
+
&block)
|
101
99
|
end
|
102
100
|
|
103
101
|
def eval_file(name)
|
data/lib/avro/builder/field.rb
CHANGED
@@ -9,8 +9,8 @@ module Avro
|
|
9
9
|
class Field
|
10
10
|
include Avro::Builder::DslOptions
|
11
11
|
include Avro::Builder::DslAttributes
|
12
|
-
include Avro::Builder::TypeFactory
|
13
12
|
include Avro::Builder::Aliasable
|
13
|
+
include Avro::Builder::AnonymousTypes
|
14
14
|
|
15
15
|
INTERNAL_ATTRIBUTES = %i(optional_field).to_set.freeze
|
16
16
|
|
@@ -31,29 +31,33 @@ module Avro
|
|
31
31
|
send(key, type_options.delete(key)) if dsl_attribute?(key)
|
32
32
|
end
|
33
33
|
|
34
|
-
@
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
@field_type = if builtin_type?(avro_type_name)
|
35
|
+
create_and_configure_builtin_type(avro_type_name,
|
36
|
+
field: self,
|
37
|
+
cache: cache,
|
38
|
+
internal: internal,
|
39
|
+
validate_type: false,
|
40
|
+
options: type_options)
|
41
|
+
elsif avro_type_name.is_a?(Avro::Builder::Types::Type)
|
42
|
+
raise 'Type name must be an Avro builtin type '\
|
43
|
+
"or a previously defined type name. Got #{avro_type_name}"
|
44
|
+
else
|
45
|
+
cache.lookup_named_type(avro_type_name, namespace)
|
46
|
+
end
|
43
47
|
|
44
48
|
# DSL calls must be evaluated after the type has been constructed
|
45
49
|
instance_eval(&block) if block_given?
|
46
|
-
@
|
50
|
+
@field_type.validate!
|
47
51
|
end
|
48
52
|
|
49
53
|
## Delegate additional DSL calls to the type
|
50
54
|
|
51
55
|
def respond_to_missing?(id, _include_all)
|
52
|
-
|
56
|
+
field_type.dsl_respond_to?(id) || super
|
53
57
|
end
|
54
58
|
|
55
59
|
def method_missing(id, *args, &block)
|
56
|
-
|
60
|
+
field_type.dsl_respond_to?(id) ? field_type.send(id, *args, &block) : super
|
57
61
|
end
|
58
62
|
|
59
63
|
def name_fragment
|
@@ -64,7 +68,7 @@ module Avro
|
|
64
68
|
# and return the namespace value from the enclosing record.
|
65
69
|
def namespace(value = nil)
|
66
70
|
if value
|
67
|
-
|
71
|
+
field_type.namespace(value)
|
68
72
|
else
|
69
73
|
record.namespace
|
70
74
|
end
|
@@ -73,7 +77,7 @@ module Avro
|
|
73
77
|
# Delegate setting name explicitly via DSL to type
|
74
78
|
def name(value = nil)
|
75
79
|
if value
|
76
|
-
|
80
|
+
field_type.name(value)
|
77
81
|
else
|
78
82
|
# Return the name of the field
|
79
83
|
@name
|
@@ -95,12 +99,12 @@ module Avro
|
|
95
99
|
|
96
100
|
private
|
97
101
|
|
98
|
-
attr_accessor :
|
102
|
+
attr_accessor :field_type, :optional_field, :cache, :record
|
99
103
|
|
100
104
|
# Optional fields must be serialized as a union -- an array of types.
|
101
105
|
def serialized_type(reference_state)
|
102
|
-
result =
|
103
|
-
optional_field ?
|
106
|
+
result = field_type.serialize(reference_state)
|
107
|
+
optional_field ? field_type.class.union_with_null(result) : result
|
104
108
|
end
|
105
109
|
end
|
106
110
|
end
|
@@ -31,11 +31,13 @@ module Avro
|
|
31
31
|
cache: nil,
|
32
32
|
internal: {},
|
33
33
|
options: {},
|
34
|
+
validate_type: true,
|
34
35
|
&block)
|
35
36
|
create_builtin_type(avro_type_name, field: field, cache: cache).tap do |type|
|
36
37
|
type.configure_options(internal.merge(options))
|
37
38
|
type.cache!
|
38
39
|
type.instance_eval(&block) if block_given?
|
40
|
+
type.validate! if validate_type
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
data/lib/avro/builder/types.rb
CHANGED
@@ -3,7 +3,6 @@ module Avro
|
|
3
3
|
module Types
|
4
4
|
class ArrayType < Type
|
5
5
|
include Avro::Builder::Types::ComplexType
|
6
|
-
include Avro::Builder::Types::ConfigurableType
|
7
6
|
include Avro::Builder::Types::TypeReferencer
|
8
7
|
|
9
8
|
dsl_attribute :items do |items_type = nil|
|
@@ -19,10 +18,8 @@ module Avro
|
|
19
18
|
end
|
20
19
|
|
21
20
|
def serialize(referenced_state)
|
22
|
-
|
23
|
-
|
24
|
-
items: items.serialize(referenced_state)
|
25
|
-
}
|
21
|
+
super(referenced_state,
|
22
|
+
overrides: { items: items.serialize(referenced_state) })
|
26
23
|
end
|
27
24
|
end
|
28
25
|
end
|
@@ -19,6 +19,13 @@ module Avro
|
|
19
19
|
field.namespace
|
20
20
|
end
|
21
21
|
|
22
|
+
def serialize(_reference_state, overrides: {})
|
23
|
+
{
|
24
|
+
type: avro_type_name,
|
25
|
+
logicalType: logical_type
|
26
|
+
}.merge(overrides).reject { |_, v| v.nil? }
|
27
|
+
end
|
28
|
+
|
22
29
|
module ClassMethods
|
23
30
|
|
24
31
|
# Infer avro_type_name based on class
|
@@ -3,7 +3,6 @@ module Avro
|
|
3
3
|
module Types
|
4
4
|
class MapType < Type
|
5
5
|
include Avro::Builder::Types::ComplexType
|
6
|
-
include Avro::Builder::Types::ConfigurableType
|
7
6
|
include Avro::Builder::Types::TypeReferencer
|
8
7
|
|
9
8
|
dsl_attribute :values do |value_type = nil|
|
@@ -15,10 +14,8 @@ module Avro
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def serialize(referenced_state)
|
18
|
-
|
19
|
-
|
20
|
-
values: values.serialize(referenced_state)
|
21
|
-
}
|
17
|
+
super(referenced_state,
|
18
|
+
overrides: { values: values.serialize(referenced_state) })
|
22
19
|
end
|
23
20
|
|
24
21
|
def validate!
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'avro/builder/types/configurable_type'
|
2
1
|
require 'avro/builder/namespaceable'
|
3
2
|
require 'avro/builder/aliasable'
|
4
3
|
require 'avro/builder/types/named_error_handling'
|
@@ -12,7 +11,6 @@ module Avro
|
|
12
11
|
class NamedType < Type
|
13
12
|
include Avro::Builder::Types::ComplexType
|
14
13
|
include Avro::Builder::Namespaceable
|
15
|
-
include Avro::Builder::Types::ConfigurableType
|
16
14
|
include Avro::Builder::Aliasable
|
17
15
|
|
18
16
|
dsl_option :name, dsl_name: :type_name
|
@@ -59,11 +57,7 @@ module Avro
|
|
59
57
|
# to the serialized value.
|
60
58
|
def serialize(reference_state, overrides: {})
|
61
59
|
reference_state.definition_or_reference(fullname) do
|
62
|
-
{
|
63
|
-
name: name,
|
64
|
-
type: avro_type_name,
|
65
|
-
namespace: namespace
|
66
|
-
}.merge(overrides).reject { |_, v| v.nil? }
|
60
|
+
serialized_attribute_hash.merge(overrides).reject { |_, v| v.nil? }
|
67
61
|
end
|
68
62
|
end
|
69
63
|
|
@@ -71,12 +65,21 @@ module Avro
|
|
71
65
|
# Subclasses may call super with additional overrides to be added
|
72
66
|
# to the hash representation.
|
73
67
|
def to_h(_reference_state, overrides: {})
|
68
|
+
serialized_attribute_hash
|
69
|
+
.merge(aliases: aliases)
|
70
|
+
.merge(overrides)
|
71
|
+
.reject { |_, v| v.nil? }
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def serialized_attribute_hash
|
74
77
|
{
|
75
78
|
name: name,
|
76
79
|
type: avro_type_name,
|
77
80
|
namespace: namespace,
|
78
|
-
|
79
|
-
}
|
81
|
+
logicalType: logical_type
|
82
|
+
}
|
80
83
|
end
|
81
84
|
end
|
82
85
|
end
|
@@ -4,6 +4,7 @@ module Avro
|
|
4
4
|
# This class represents a record in an Avro schema. Records may be defined
|
5
5
|
# at the top-level or as the type for a field in a record.
|
6
6
|
class RecordType < Avro::Builder::Types::NamedType
|
7
|
+
include Avro::Builder::AnonymousTypes
|
7
8
|
|
8
9
|
DSL_METHODS = %i(required optional extends).to_set.freeze
|
9
10
|
|
@@ -64,6 +65,7 @@ module Avro
|
|
64
65
|
namespace: namespace,
|
65
66
|
doc: doc,
|
66
67
|
aliases: aliases,
|
68
|
+
logicalType: logical_type,
|
67
69
|
fields: fields.values.map { |field| field.serialize(reference_state) }
|
68
70
|
}.reject { |_, v| v.nil? }
|
69
71
|
end
|
@@ -8,6 +8,8 @@ module Avro
|
|
8
8
|
include Avro::Builder::DslOptions
|
9
9
|
include Avro::Builder::DslAttributes
|
10
10
|
|
11
|
+
dsl_attribute :logical_type
|
12
|
+
|
11
13
|
attr_reader :avro_type_name
|
12
14
|
|
13
15
|
def initialize(avro_type_name, cache:, field: nil)
|
@@ -17,15 +19,21 @@ module Avro
|
|
17
19
|
end
|
18
20
|
|
19
21
|
def serialize(_reference_state)
|
20
|
-
|
22
|
+
if logical_type
|
23
|
+
{ type: avro_type_name, logicalType: logical_type }
|
24
|
+
else
|
25
|
+
avro_type_name
|
26
|
+
end
|
21
27
|
end
|
22
28
|
|
23
29
|
def namespace
|
24
30
|
nil
|
25
31
|
end
|
26
32
|
|
27
|
-
def configure_options(
|
28
|
-
|
33
|
+
def configure_options(options = {})
|
34
|
+
options.each do |key, value|
|
35
|
+
send("#{key}=", value) if dsl_option?(key)
|
36
|
+
end
|
29
37
|
end
|
30
38
|
|
31
39
|
# Optional fields are represented as a union of the type with :null.
|
@@ -8,11 +8,13 @@ module Avro
|
|
8
8
|
module TypeReferencer
|
9
9
|
include Avro::Builder::TypeFactory
|
10
10
|
|
11
|
-
def create_builtin_or_lookup_named_type(
|
12
|
-
if
|
13
|
-
|
11
|
+
def create_builtin_or_lookup_named_type(avro_type_or_name)
|
12
|
+
if avro_type_or_name.is_a?(Avro::Builder::Types::Type)
|
13
|
+
avro_type_or_name
|
14
|
+
elsif builtin_type?(avro_type_or_name)
|
15
|
+
create_builtin_type(avro_type_or_name, field: field, cache: cache)
|
14
16
|
else
|
15
|
-
cache.lookup_named_type(
|
17
|
+
cache.lookup_named_type(avro_type_or_name)
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
@@ -3,7 +3,6 @@ module Avro
|
|
3
3
|
module Types
|
4
4
|
class UnionType < Type
|
5
5
|
include Avro::Builder::Types::ComplexType
|
6
|
-
include Avro::Builder::Types::ConfigurableType
|
7
6
|
include Avro::Builder::Types::TypeReferencer
|
8
7
|
|
9
8
|
NULL_TYPE = 'null'.freeze
|
@@ -30,6 +29,10 @@ module Avro
|
|
30
29
|
def validate!
|
31
30
|
validate_required_attribute!(:types)
|
32
31
|
end
|
32
|
+
|
33
|
+
def logical_type=(value)
|
34
|
+
raise AttributeError.new("Logical types are not supported for unions: #{value}.")
|
35
|
+
end
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end
|
data/lib/avro/builder/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avro-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify Engineering
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.7.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: appraisal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,6 +149,7 @@ files:
|
|
135
149
|
- ".rubocop.yml"
|
136
150
|
- ".ruby-version"
|
137
151
|
- ".travis.yml"
|
152
|
+
- Appraisals
|
138
153
|
- CHANGELOG.md
|
139
154
|
- Gemfile
|
140
155
|
- LICENSE.txt
|
@@ -143,8 +158,11 @@ files:
|
|
143
158
|
- avro-builder.gemspec
|
144
159
|
- bin/console
|
145
160
|
- bin/setup
|
161
|
+
- gemfiles/avro_official.gemfile
|
162
|
+
- gemfiles/avro_salsify_fork.gemfile
|
146
163
|
- lib/avro/builder.rb
|
147
164
|
- lib/avro/builder/aliasable.rb
|
165
|
+
- lib/avro/builder/anonymous_types.rb
|
148
166
|
- lib/avro/builder/definition_cache.rb
|
149
167
|
- lib/avro/builder/dsl.rb
|
150
168
|
- lib/avro/builder/dsl_attributes.rb
|
@@ -165,7 +183,6 @@ files:
|
|
165
183
|
- lib/avro/builder/types.rb
|
166
184
|
- lib/avro/builder/types/array_type.rb
|
167
185
|
- lib/avro/builder/types/complex_type.rb
|
168
|
-
- lib/avro/builder/types/configurable_type.rb
|
169
186
|
- lib/avro/builder/types/enum_type.rb
|
170
187
|
- lib/avro/builder/types/fixed_type.rb
|
171
188
|
- lib/avro/builder/types/map_type.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Avro
|
2
|
-
module Builder
|
3
|
-
module Types
|
4
|
-
|
5
|
-
# This concern is used by Types that can be configured via the DSL.
|
6
|
-
# Only attributes that can be set via options are configured here.
|
7
|
-
module ConfigurableType
|
8
|
-
def configure_options(options = {})
|
9
|
-
options.each do |key, value|
|
10
|
-
send("#{key}=", value) if dsl_option?(key)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|