Sha256: 5e93ac898bacbfa16bcb3bde8aa0b7d6a385451d46f56ad5268577923213d599

Contents?: true

Size: 671 Bytes

Versions: 21

Compression:

Stored size: 671 Bytes

Contents

module Avro
  module Builder

    # This class is used to keep track of references to each named type while
    # generating an Avro JSON schema. Only the first reference to the type
    # can include all of details of the definition. All subsequent references
    # must use the full name for the type.
    class SchemaSerializerReferenceState

      attr_reader :references
      private :references

      def initialize
        @references = Set.new
      end

      def definition_or_reference(fullname)
        if references.include?(fullname)
          fullname
        else
          references << fullname
          yield
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
avro-builder-0.16.1 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.16.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.15.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.15.0.rc0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.14.1 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.14.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.13.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.12.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.11.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.10.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.9.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.8.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.7.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.6.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.5.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.4.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.3.2 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.3.1 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.3.0 lib/avro/builder/schema_serializer_reference_state.rb
avro-builder-0.2.0 lib/avro/builder/schema_serializer_reference_state.rb