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