Sha256: daddb9b8d4f4c2430c3dfa978cf1fe031e314a5ebf03c8e19d2243f2a2f838a8

Contents?: true

Size: 903 Bytes

Versions: 13

Compression:

Stored size: 903 Bytes

Contents

# frozen_string_literal: true

module Meta
  module JsonSchema
    module Presenters
      @presenter_handlers = []

      class << self
        def register(presenter_handler)
          @presenter_handlers << presenter_handler
        end

        def unregister(presenter_handler)
          @presenter_handlers.delete(presenter_handler)
        end

        def present(presenter, value)
          @presenter_handlers.each do |presenter_handler|
            next unless presenter_handler.handle?(presenter)

            return presenter_handler.present(presenter, value)
          end
        end

        def to_schema_doc(presenter, other_options)
          @presenter_handlers.each do |presenter_handler|
            next unless presenter_handler.handle?(presenter)

            return presenter_handler.to_schema_doc(presenter, other_options)
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
meta-api-0.2.0 lib//meta/json_schema/support/presenters.rb
meta-api-0.1.2 lib//meta/json_schema/support/presenters.rb
meta-api-0.1.1 lib//meta/json_schema/support/presenters.rb
meta-api-0.1.0 lib//meta/json_schema/support/presenters.rb
meta-api-0.0.9 lib//meta/json_schema/support/presenters.rb
meta-api-0.0.8 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.7 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.6 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.5 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.4 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.3 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.2 lib/meta/json_schema/support/presenters.rb
meta-api-0.0.1 lib/meta/json_schema/support/presenters.rb