Class: JSON::SchemaGenerator
- Inherits:
-
Object
- Object
- JSON::SchemaGenerator
- Defined in:
- lib/json/schema_generator.rb,
lib/json/schema_generator/version.rb,
lib/json/schema_generator/statement_group.rb,
lib/json/schema_generator/brute_force_required_search.rb
Defined Under Namespace
Classes: BruteForceRequiredSearch, StatementGroup
Constant Summary collapse
- VERSION =
"0.0.9"
Class Method Summary collapse
Instance Method Summary collapse
- #generate(raw_data) ⇒ Object
-
#initialize(name, opts = {}) ⇒ SchemaGenerator
constructor
A new instance of SchemaGenerator.
Constructor Details
#initialize(name, opts = {}) ⇒ SchemaGenerator
Returns a new instance of SchemaGenerator.
13 14 15 16 17 18 19 |
# File 'lib/json/schema_generator.rb', line 13 def initialize name, opts = {} @defaults = opts[:defaults] @allow_null = opts[:allow_null] @buffer = StringIO.new @name = name end |
Class Method Details
.generate(name, data, opts = {}) ⇒ Object
8 9 10 |
# File 'lib/json/schema_generator.rb', line 8 def generate name, data, opts = {} JSON::SchemaGenerator.new(name, opts).generate data end |
Instance Method Details
#generate(raw_data) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/json/schema_generator.rb', line 21 def generate raw_data data = JSON.load(raw_data) @brute_search = BruteForceRequiredSearch.new data statement_group = StatementGroup.new statement_group.add "\"$schema\": \"http://json-schema.org/draft4/schema#\"" statement_group.add "\"description\": \"Generated from json_schema_generator #rusteze\"" case data when Array $stop = true create_array(statement_group, data, detect_required(data)) else create_hash(statement_group, data, detect_required(data)) end @buffer.puts statement_group result end |