Sha256: 9124280a7aa9bd5018012a0dae2fda499c0479e92e2fb878544bf329b552b132

Contents?: true

Size: 1.03 KB

Versions: 8

Compression:

Stored size: 1.03 KB

Contents

require 'active_support'
require 'active_support/core_ext'
require 'json/schema_builder/dsl'
require 'json/schema_builder/version'
require 'json/schema_builder/configuration'

%w(any array boolean integer null number object string).each do |type|
  require "json/schema_builder/#{ type }"
end

module JSON
  module SchemaBuilder
    extend ActiveSupport::Concern
    include DSL
    extend JSON::SchemaBuilder::Configuration

    included do |klass|
      include Helpers
      extend JSON::SchemaBuilder::Configuration
      class << self
        attr_accessor :root_key
      end
    end

    def self.default_options
      @options || { }
    end

    def initialize(context = { })
      context.each_pair do |key, value|
        instance_variable_set "@#{ key }", value
      end
    end

    def root(key = nil, &block)
      root_key = key || self.class.root_key.to_sym
      object do
        object root_key, required: true, &block
      end
    end

    module ClassMethods
      def root(key)
        @root_key = key
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
json-schema_builder-0.8.2 lib/json/schema_builder.rb
json-schema_builder-0.8.1 lib/json/schema_builder.rb
json-schema_builder-0.8.0 lib/json/schema_builder.rb
json-schema_builder-0.7.1 lib/json/schema_builder.rb
json-schema_builder-0.7.0 lib/json/schema_builder.rb
json-schema_builder-0.6.1 lib/json/schema_builder.rb
json-schema_builder-0.6.0 lib/json/schema_builder.rb
json-schema_builder-0.5.0 lib/json/schema_builder.rb