class EasyJSONMatcher::SchemaGenerator

Attributes

att_glob_opts[R]
glob_opts[R]
node[R]

Public Class Methods

new(opts: [], global_opts: [], **args, &block) click to toggle source
Calls superclass method
# File lib/easy_json_matcher/schema_generator.rb, line 15
def initialize(opts: [], global_opts: [], **args, &block)
  super(**args)
  @glob_opts = global_opts
  @att_glob_opts = glob_opts.dup
  @att_glob_opts.delete(:strict)
  @node = new_node_generator(opts: opts, globals: global_opts)
  node.instance_eval &block if block_given?
end

Public Instance Methods

create_node(opts:) click to toggle source
# File lib/easy_json_matcher/schema_generator.rb, line 24
def create_node(opts:)
  node.new(opts: opts)
end
generate_node() click to toggle source

Methods for generating the schema #########################

# File lib/easy_json_matcher/schema_generator.rb, line 30
def generate_node
  node.generate_node
end
generate_schema() click to toggle source
# File lib/easy_json_matcher/schema_generator.rb, line 34
def generate_schema
  validator.new validate_with: generate_node
end
new_node_generator(opts:, globals:) click to toggle source
# File lib/easy_json_matcher/schema_generator.rb, line 43
def new_node_generator(opts:, globals:)
  node_generator.new(opts: opts, global_opts: globals)
end
register(as:) click to toggle source
# File lib/easy_json_matcher/schema_generator.rb, line 38
def register(as:)
  schema_library.add_schema(name: as, schema: generate_node)
  generate_schema
end