avro-builder 0.5.0 → 0.6.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
  SHA1:
3
- metadata.gz: 6a6a7c469ac63da10199ce29df3e1b6d82e6904a
4
- data.tar.gz: aa7a5d4506499cc9a75ce963e54254d6ded16b49
3
+ metadata.gz: 5420ca208ea3fd4e3656158ed44ef8270eb0d22a
4
+ data.tar.gz: 74375f766022da155afa1421c0cd6068aa24e812
5
5
  SHA512:
6
- metadata.gz: 2803b8ebb4bedb1256041eaf4533c2c1309e416fb7152ef3f55e76191e32b1af17608895d42e729b026a1ca0edada181aa779993b4ddfd485dcd594d824c057f
7
- data.tar.gz: bba50fb4e40081ab522201c764f90c583e351b3be14b2ec237c850565bc84fad1e12ab42b8f8fc32289286e380f1cd41c2c600a10e5afe3bb316a43726304f67
6
+ metadata.gz: 4a3f0b4e0f8a9107d56d60e85586295b9ca18ae0c0197a646ee917d6ee9f6617148ab47b02cc3ef017e6298dd611bc1cf8e8ff2d08432ead66f1585d0350f7e4
7
+ data.tar.gz: 6de4bceaee6e27726d62100cece189dc9ef574c2790b23c495a4cc74d6f9852f03805e819edb0d28c63f67ad1d3d0cce7899edc619290b2905aac03cd37b294f
@@ -0,0 +1,13 @@
1
+ PreCommit:
2
+ RuboCop:
3
+ enabled: true
4
+ required: false
5
+ on_warn: fail
6
+
7
+ HardTabs:
8
+ enabled: true
9
+ required: false
10
+
11
+ CommitMsg:
12
+ TrailingPeriod:
13
+ enabled: false
@@ -0,0 +1,5 @@
1
+ inherit_gem:
2
+ salsify_rubocop: conf/rubocop.yml
3
+
4
+ Style/RaiseArgs:
5
+ EnforcedStyle: compact
@@ -1,5 +1,14 @@
1
1
  # avro-builder changelog
2
2
 
3
+ ## v0.6.0
4
+ - Support recursive definitions.
5
+ - Coerce aliases to be represented as an array.
6
+ - Only allow name and namespace to be set via options, not via a block, for
7
+ record, enum, and fixed types.
8
+ - Allow `doc` and `aliases` to be set on both a field and a type defined inline
9
+ for the field. To set these attributes on the inline type `type_doc` and
10
+ `type_aliases` must be used in the DSL.
11
+
3
12
  ## v0.5.0
4
13
  - Support references to named types that are defined inline.
5
14
  - Raise an error for duplicate definitions with the same fullname.
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -4,26 +4,28 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'avro/builder/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "avro-builder"
7
+ spec.name = 'avro-builder'
8
8
  spec.version = Avro::Builder::VERSION
9
- spec.authors = ["Salsify Engineering"]
10
- spec.email = ["engineering@salsify.com"]
9
+ spec.authors = ['Salsify Engineering']
10
+ spec.email = ['engineering@salsify.com']
11
11
 
12
- spec.summary = %q{Ruby DSL to create Avro schemas}
12
+ spec.summary = 'Ruby DSL to create Avro schemas'
13
13
  spec.description = spec.summary
14
- spec.homepage = "https://github.com/salsify/avro-builder.git"
15
- spec.license = "MIT"
14
+ spec.homepage = 'https://github.com/salsify/avro-builder.git'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_runtime_dependency "avro", ">= 1.7.0"
22
+ spec.add_runtime_dependency 'avro', '>= 1.7.0'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.11"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
27
- spec.add_development_dependency "json_spec"
28
- spec.add_development_dependency "simplecov"
24
+ spec.add_development_dependency 'bundler', '~> 1.11'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'rspec', '~> 3.0'
27
+ spec.add_development_dependency 'json_spec'
28
+ spec.add_development_dependency 'simplecov'
29
+ spec.add_development_dependency 'salsify_rubocop', '~> 0.40.0'
30
+ spec.add_development_dependency 'overcommit'
29
31
  end
data/bin/setup CHANGED
@@ -4,5 +4,4 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
-
8
- # Do any other automated setup that you need to do here
7
+ overcommit --install
@@ -0,0 +1,20 @@
1
+ require 'avro/builder/dsl_attributes'
2
+
3
+ module Avro
4
+ module Builder
5
+
6
+ # This is a shared concern for objects that support aliases via the DSL.
7
+ module Aliasable
8
+ def self.included(base)
9
+ base.dsl_attribute(:aliases) do |*names|
10
+ if !names.empty?
11
+ @aliases = names.flatten
12
+ else
13
+ @aliases
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ end
20
+ end
@@ -1,5 +1,6 @@
1
1
  require 'avro'
2
2
  require 'avro/builder/errors'
3
+ require 'avro/builder/dsl_options'
3
4
  require 'avro/builder/dsl_attributes'
4
5
  require 'avro/builder/namespaceable'
5
6
  require 'avro/builder/definition_cache'
@@ -14,6 +15,7 @@ module Avro
14
15
  # This class is used to construct Avro schemas (not protocols) using a ruby
15
16
  # DSL
16
17
  class DSL
18
+ include Avro::Builder::DslOptions
17
19
  include Avro::Builder::DslAttributes
18
20
  include Avro::Builder::FileHandler
19
21
  include Avro::Builder::TypeFactory
@@ -84,7 +86,7 @@ module Avro
84
86
  options: options,
85
87
  &block).tap do |type|
86
88
  type.validate!
87
- @last_object = cache.add_schema_object(type)
89
+ @last_object = type
88
90
  end
89
91
  end
90
92
 
@@ -2,14 +2,14 @@ module Avro
2
2
  module Builder
3
3
 
4
4
  # This module provides methods for defining attributes that can be
5
- # set via the DSL on various objects.
5
+ # set via the DSL on various objects.
6
6
  #
7
7
  # The methods generated for DSL attributes are combined getter/setters
8
8
  # of the form:
9
9
  #
10
10
  # attribute(value = nil)
11
11
  #
12
- # When value is provided the attribute is set, and when it is nil the
12
+ # When a value is provided the attribute is set, and when it is nil the
13
13
  # current value is returned.
14
14
  #
15
15
  # When a DSL attribute is defined, the class also keeps track of the
@@ -19,32 +19,38 @@ module Avro
19
19
  base.extend ClassMethods
20
20
  end
21
21
 
22
- def has_dsl_attribute?(name)
22
+ def dsl_attribute?(name)
23
23
  self.class.dsl_attribute_names.include?(name.to_sym)
24
24
  end
25
25
 
26
26
  module ClassMethods
27
- def dsl_attributes(*names)
28
- names.each do |name|
29
- dsl_attribute_names << name
30
- ivar = :"@#{name}"
31
- define_method(name) do |value = nil|
32
- value ? instance_variable_set(ivar, value) : instance_variable_get(ivar)
33
- end
34
- end
35
- end
36
-
37
27
  # If a block is specified then it is used to define the
38
28
  # combined getter/setter method for the DSL attribute.
39
29
  def dsl_attribute(name, &block)
40
30
  if block_given?
41
- dsl_attribute_names << name
31
+ add_attribute_name(name)
42
32
  define_method(name, &block)
33
+ alias_writer(name)
43
34
  else
44
35
  dsl_attributes(name)
45
36
  end
46
37
  end
47
38
 
39
+ def dsl_attributes(*names)
40
+ raise 'a block can only be specified with dsl_attribute' if block_given?
41
+
42
+ names.each do |name|
43
+ add_attribute_name(name)
44
+ define_accessor(name)
45
+ end
46
+ end
47
+
48
+ def dsl_attribute_alias(new_name, old_name)
49
+ alias_method(new_name, old_name)
50
+ alias_writer(new_name)
51
+ add_attribute_name(new_name)
52
+ end
53
+
48
54
  def dsl_attribute_names
49
55
  @dsl_attribute_names ||=
50
56
  if superclass.respond_to?(:dsl_attribute_names)
@@ -53,6 +59,28 @@ module Avro
53
59
  Set.new
54
60
  end
55
61
  end
62
+
63
+ private
64
+
65
+ def add_attribute_name(name)
66
+ dsl_attribute_names << name
67
+ add_option_name(name)
68
+ end
69
+
70
+ def define_accessor(name)
71
+ ivar = :"@#{name}"
72
+ define_method(name) do |value = nil|
73
+ value.nil? ? instance_variable_get(ivar) : instance_variable_set(ivar, value)
74
+ end
75
+ alias_writer(name)
76
+ end
77
+
78
+ # The writer (name=) method is used to set attributes via options.
79
+ def alias_writer(name)
80
+ writer = "#{name}="
81
+ alias_method(writer, name)
82
+ private(writer)
83
+ end
56
84
  end
57
85
  end
58
86
  end
@@ -0,0 +1,72 @@
1
+ module Avro
2
+ module Builder
3
+
4
+ # This module provides methods for defining options that can be
5
+ # set via the DSL on various objects.
6
+ #
7
+ # These attributes can only be set as options via the private
8
+ # #attribute= methods, and not as methods in DSL block.
9
+ #
10
+ # When a DSL option is defined, the class also keeps track of the
11
+ # option names.
12
+ module DslOptions
13
+ def self.included(base)
14
+ base.extend ClassMethods
15
+ end
16
+
17
+ def dsl_option?(name)
18
+ self.class.dsl_option_names.include?(name.to_sym)
19
+ end
20
+
21
+ module ClassMethods
22
+ # A DSL option is only settable as an option, not as method in a block.
23
+ def dsl_option(name, &block)
24
+ add_option_name(name)
25
+ define_private_writer(name)
26
+ define_reader(name, &block)
27
+ end
28
+
29
+ def dsl_option_names
30
+ @dsl_option_names ||=
31
+ if superclass.respond_to?(:dsl_option_names)
32
+ superclass.dsl_option_names.dup
33
+ else
34
+ Set.new
35
+ end
36
+ end
37
+
38
+ private
39
+
40
+ def add_option_name(name)
41
+ dsl_option_names << name
42
+ end
43
+
44
+ def define_private_writer(name)
45
+ attr_writer(name)
46
+ private("#{name}=")
47
+ end
48
+
49
+ # Define a accessor method that raises an error if called as a writer.
50
+ # If the optional block is specified then it is evaluated as the reader.
51
+ def define_reader(name, &block)
52
+ if block_given?
53
+ define_method(name) do |value = nil|
54
+ value ? unsupported_block_attribute(name, type_name) : instance_eval(&block)
55
+ end
56
+ else
57
+ define_method(name) do |value = nil|
58
+ value ? unsupported_block_attribute(name, type_name) : instance_variable_get("@#{name}")
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ private
65
+
66
+ def unsupported_block_attribute(attribute, type)
67
+ raise UnsupportedBlockAttributeError.new(attribute: attribute,
68
+ type: type)
69
+ end
70
+ end
71
+ end
72
+ end
@@ -28,15 +28,25 @@ module Avro
28
28
 
29
29
  class DefinitionNotFoundError < StandardError
30
30
  def initialize(name)
31
- super("definition not found for '#{name.to_s}'.#{suggest_namespace(name)}")
31
+ super("definition not found for '#{name}'.#{suggest_namespace(name)}")
32
32
  end
33
33
 
34
34
  private
35
35
 
36
36
  def suggest_namespace(name)
37
- unless name.to_s.index('.')
38
- ' Try specifying the full namespace.'
39
- end
37
+ ' Try specifying the full namespace.' unless name.to_s.index('.')
38
+ end
39
+ end
40
+
41
+ class UnsupportedBlockAttributeError < StandardError
42
+ def initialize(attribute:, type:, field: nil)
43
+ target = if field
44
+ "field '#{field}' of type :#{type}"
45
+ else
46
+ "type :#{type}"
47
+ end
48
+ super("'#{attribute}' must be set directly using an option on #{target}, "\
49
+ 'not via a block')
40
50
  end
41
51
  end
42
52
  end
@@ -1,4 +1,5 @@
1
1
  require 'avro/builder/type_factory'
2
+ require 'avro/builder/aliasable'
2
3
 
3
4
  module Avro
4
5
  module Builder
@@ -6,13 +7,17 @@ module Avro
6
7
  # This class represents a field in a record.
7
8
  # A field must be initialized with a type.
8
9
  class Field
10
+ include Avro::Builder::DslOptions
9
11
  include Avro::Builder::DslAttributes
10
12
  include Avro::Builder::TypeFactory
13
+ include Avro::Builder::Aliasable
11
14
 
12
- INTERNAL_ATTRIBUTES = Set.new(%i(optional_field)).freeze
15
+ INTERNAL_ATTRIBUTES = %i(optional_field).to_set.freeze
13
16
 
14
17
  # These attributes may be set as options or via a block in the DSL
15
- dsl_attributes :doc, :aliases, :default, :order
18
+ dsl_attributes :doc, :default, :order
19
+
20
+ attr_reader :name
16
21
 
17
22
  def initialize(name:, type_name:, record:, cache:, internal: {}, options: {}, &block)
18
23
  @cache = cache
@@ -23,8 +28,9 @@ module Avro
23
28
  send("#{key}=", value) if INTERNAL_ATTRIBUTES.include?(key)
24
29
  end
25
30
 
26
- options.each do |key, value|
27
- send(key, value) if has_dsl_attribute?(key)
31
+ type_options = options.dup
32
+ options.keys.each do |key|
33
+ send(key, type_options.delete(key)) if dsl_attribute?(key)
28
34
  end
29
35
 
30
36
  @type = if builtin_type?(type_name)
@@ -32,26 +38,24 @@ module Avro
32
38
  field: self,
33
39
  cache: cache,
34
40
  internal: internal,
35
- options: options)
41
+ options: type_options)
36
42
  else
37
- named_type = true
38
43
  cache.lookup_named_type(type_name, namespace)
39
44
  end
40
45
 
41
46
  # DSL calls must be evaluated after the type has been constructed
42
47
  instance_eval(&block) if block_given?
43
48
  @type.validate!
44
- @type.cache! unless named_type
45
49
  end
46
50
 
47
51
  ## Delegate additional DSL calls to the type
48
52
 
49
- def respond_to_missing?(id, include_all = false)
50
- super || type.respond_to?(id, include_all)
53
+ def respond_to_missing?(id, _include_all)
54
+ type.dsl_respond_to?(id) || super
51
55
  end
52
56
 
53
57
  def method_missing(id, *args, &block)
54
- type.respond_to?(id) ? type.send(id, *args, &block) : super
58
+ type.dsl_respond_to?(id) ? type.send(id, *args, &block) : super
55
59
  end
56
60
 
57
61
  def name_fragment
@@ -62,7 +66,9 @@ module Avro
62
66
  # and return the namespace value from the enclosing record.
63
67
  def namespace(value = nil)
64
68
  if value
65
- type.namespace(value)
69
+ raise UnsupportedBlockAttributeError.new(attribute: :namespace,
70
+ field: @name,
71
+ type: type.type_name)
66
72
  else
67
73
  record.namespace
68
74
  end
@@ -71,7 +77,9 @@ module Avro
71
77
  # Delegate setting name explicitly via DSL to type
72
78
  def name(value = nil)
73
79
  if value
74
- type.name(value)
80
+ raise UnsupportedBlockAttributeError.new(attribute: :name,
81
+ field: @name,
82
+ type: type.type_name)
75
83
  else
76
84
  # Return the name of the field
77
85
  @name
@@ -79,6 +87,7 @@ module Avro
79
87
  end
80
88
 
81
89
  def serialize(reference_state)
90
+ # TODO: order is not included here
82
91
  {
83
92
  name: name,
84
93
  type: serialized_type(reference_state),
@@ -26,7 +26,7 @@ module Avro
26
26
  # and ends with a .rb extension. Additionally, if the name contains
27
27
  # a namespace then ensure that periods (.) are replaced by forward
28
28
  # slashes. E.g. for 'test.example' search for '/test/example.rb'.
29
- file_name = "/#{name.to_s.gsub('.', '/').sub(/^\//, '').sub(/\.rb$/, '')}.rb"
29
+ file_name = "/#{name.to_s.tr('.', '/').sub(/^\//, '').sub(/\.rb$/, '')}.rb"
30
30
  matches = self.class.load_paths.flat_map do |load_path|
31
31
  Dir["#{load_path}/**/*.rb"].select do |file_path|
32
32
  file_path.end_with?(file_name)
@@ -12,10 +12,9 @@ module Avro
12
12
  # Return a new Type instance
13
13
  def create_builtin_type(type_name, field:, cache:)
14
14
  name = type_name.to_s.downcase
15
- case
16
- when Avro::Schema::PRIMITIVE_TYPES.include?(name)
15
+ if Avro::Schema::PRIMITIVE_TYPES.include?(name)
17
16
  Avro::Builder::Types::Type.new(name, field: field, cache: cache)
18
- when COMPLEX_TYPES.include?(name)
17
+ elsif COMPLEX_TYPES.include?(name)
19
18
  Avro::Builder::Types.const_get("#{name.capitalize}Type").new(field: field, cache: cache)
20
19
  else
21
20
  raise "Invalid builtin type: #{type_name}"
@@ -32,6 +31,7 @@ module Avro
32
31
  &block)
33
32
  create_builtin_type(type_name, field: field, cache: cache).tap do |type|
34
33
  type.configure_options(internal.merge(options))
34
+ type.cache!
35
35
  type.instance_eval(&block) if block_given?
36
36
  end
37
37
  end
@@ -2,12 +2,12 @@ module Avro
2
2
  module Builder
3
3
  module Types
4
4
 
5
- # This concern is used by Types that can be configured using DSL
6
- # attributes.
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
7
  module ConfigurableType
8
8
  def configure_options(options = {})
9
9
  options.each do |key, value|
10
- send(key, value) if has_dsl_attribute?(key)
10
+ send("#{key}=", value) if dsl_option?(key)
11
11
  end
12
12
  end
13
13
  end
@@ -1,5 +1,6 @@
1
1
  require 'avro/builder/types/configurable_type'
2
2
  require 'avro/builder/namespaceable'
3
+ require 'avro/builder/aliasable'
3
4
 
4
5
  module Avro
5
6
  module Builder
@@ -11,17 +12,15 @@ module Avro
11
12
  include Avro::Builder::Types::ComplexType
12
13
  include Avro::Builder::Namespaceable
13
14
  include Avro::Builder::Types::ConfigurableType
15
+ include Avro::Builder::Aliasable
14
16
 
15
- dsl_attributes :namespace, :aliases
16
-
17
- dsl_attribute :name do |value = nil|
18
- if value
19
- @name = value
20
- else
21
- @name || "__#{name_fragment}_#{type_name}"
22
- end
17
+ dsl_option :namespace
18
+ dsl_option :name do
19
+ @name || "__#{name_fragment}_#{type_name}"
23
20
  end
24
21
 
22
+ dsl_attribute_alias :type_aliases, :aliases
23
+
25
24
  def validate!
26
25
  required_attribute_error!(:name) if field.nil? && @name.nil?
27
26
  end
@@ -1,11 +1,14 @@
1
1
  module Avro
2
2
  module Builder
3
3
  module Types
4
- # This class represents a record in an Avro schema. Records may be defined
5
- # at the top-level or as the type for a field in a record.
4
+ # This class represents a record in an Avro schema. Records may be defined
5
+ # at the top-level or as the type for a field in a record.
6
6
  class RecordType < Avro::Builder::Types::NamedType
7
7
 
8
- dsl_attributes :doc
8
+ DSL_METHODS = %i(required optional extends).to_set.freeze
9
+
10
+ dsl_attribute :doc
11
+ dsl_attribute_alias :type_doc, :doc
9
12
 
10
13
  def initialize(name = nil, options: {}, cache:, field: nil, &block)
11
14
  @type_name = :record
@@ -17,6 +20,10 @@ module Avro
17
20
  instance_eval(&block) if block_given?
18
21
  end
19
22
 
23
+ def dsl_method?(name)
24
+ DSL_METHODS.include?(name)
25
+ end
26
+
20
27
  # Add a required field to the record
21
28
  def required(name, type_name, options = {}, &block)
22
29
  new_field = Avro::Builder::Field.new(name: name,
@@ -5,6 +5,7 @@ module Avro
5
5
  # type is constructed. The type has no additional attributes, and
6
6
  # the type is serialized as just the type name.
7
7
  class Type
8
+ include Avro::Builder::DslOptions
8
9
  include Avro::Builder::DslAttributes
9
10
 
10
11
  attr_reader :type_name
@@ -42,6 +43,17 @@ module Avro
42
43
  def cache!
43
44
  end
44
45
 
46
+ # Subclasses can override this method to indicate that the name
47
+ # is a method that the type exposes in the DSL. These methods are in
48
+ # addition to the methods for setting attributes on a type.
49
+ def dsl_method?(_name)
50
+ false
51
+ end
52
+
53
+ def dsl_respond_to?(name)
54
+ dsl_attribute?(name) || dsl_method?(name)
55
+ end
56
+
45
57
  private
46
58
 
47
59
  def required_attribute_error!(attribute_name)
@@ -58,8 +70,6 @@ module Avro
58
70
  end
59
71
  end
60
72
 
61
- private
62
-
63
73
  attr_accessor :field, :cache
64
74
  end
65
75
  end
@@ -1,5 +1,5 @@
1
1
  module Avro
2
2
  module Builder
3
- VERSION = "0.5.0"
3
+ VERSION = '0.6.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avro-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salsify Engineering
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-18 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avro
@@ -94,6 +94,34 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: salsify_rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.40.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.40.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: overcommit
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  description: Ruby DSL to create Avro schemas
98
126
  email:
99
127
  - engineering@salsify.com
@@ -102,7 +130,9 @@ extensions: []
102
130
  extra_rdoc_files: []
103
131
  files:
104
132
  - ".gitignore"
133
+ - ".overcommit.yml"
105
134
  - ".rspec"
135
+ - ".rubocop.yml"
106
136
  - ".travis.yml"
107
137
  - CHANGELOG.md
108
138
  - Gemfile
@@ -113,9 +143,11 @@ files:
113
143
  - bin/console
114
144
  - bin/setup
115
145
  - lib/avro/builder.rb
146
+ - lib/avro/builder/aliasable.rb
116
147
  - lib/avro/builder/definition_cache.rb
117
148
  - lib/avro/builder/dsl.rb
118
149
  - lib/avro/builder/dsl_attributes.rb
150
+ - lib/avro/builder/dsl_options.rb
119
151
  - lib/avro/builder/errors.rb
120
152
  - lib/avro/builder/field.rb
121
153
  - lib/avro/builder/file_handler.rb