Module: ADIWG::MdjsonSchemas::Utils
- Defined in:
- lib/adiwg/mdjson_schemas/utils.rb
Overview
Utility methods for accessing and loading schemas
Class Method Summary collapse
-
.examples_dir ⇒ String
Return the path to examples directory.
-
.load_json(filename) ⇒ Object
load json files.
-
.load_schemas(strict = false) ⇒ nil
Pre-load all of the json-schemas for mdJSON validation.
-
.load_strict(schema) ⇒ Hash
Load one schema and make it strict, i.e.
-
.schema_dir ⇒ String
Return the path to schema directory.
-
.schema_path ⇒ String
Return the path to main schema.json file.
Class Method Details
.examples_dir ⇒ String
Return the path to examples directory.
33 34 35 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 33 def self.examples_dir File.join(File.dirname(File.(__FILE__)), '../../../examples/') end |
.load_json(filename) ⇒ Object
load json files
12 13 14 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 12 def self.load_json(filename) JSON.load File.new(filename) end |
.load_schemas(strict = false) ⇒ nil
Pre-load all of the json-schemas for mdJSON validation
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 41 def self.load_schemas(strict = false) Dir.glob(schema_dir + '*.json') do |schema| loaded = Utils.load_json(schema) name = File.basename(schema) if strict loaded['additionalProperties'] = false unless loaded['definitions'].nil? loaded['definitions'].each do |_key, val| val['additionalProperties'] = false end end end jschema = JSON::Schema.new(loaded, Addressable::URI.parse(name)) JSON::Validator.add_schema(jschema) end end |
.load_strict(schema) ⇒ Hash
Load one schema and make it strict, i.e. additionalProperties=false and all properties required
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 66 def self.load_strict(schema) loaded = load_json(schema_dir + schema) loaded['additionalProperties'] = false loaded['required'] = loaded['properties'].keys unless loaded['properties'].nil? unless loaded['definitions'].nil? loaded['definitions'].each do |_key, val| val['additionalProperties'] = false val['required'] = val['properties'].keys unless val['properties'].nil? end end loaded end |
.schema_dir ⇒ String
Return the path to schema directory.
26 27 28 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 26 def self.schema_dir File.join(File.dirname(File.(__FILE__)), '../../../schema/') end |
.schema_path ⇒ String
Return the path to main schema.json file.
19 20 21 |
# File 'lib/adiwg/mdjson_schemas/utils.rb', line 19 def self.schema_path File.join(File.dirname(File.(__FILE__)), '../../../schema/schema.json') end |