Module: JSON::Schema::Lite

Defined in:
lib/json/schema/lite.rb,
lib/json/schema/lite/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.define(definition) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/json/schema/lite.rb', line 7

def self.define(definition)
  option = definition.is_a?(Hash) ? definition.delete(:option) || {} : {}

  {}.tap do |json_schema|
    if definition.is_a? Hash
      definition.each_pair do |k, v|
        if k.to_s == 'properties' || option[:properties]
          v[:option] = { properties: true } if v.is_a? Hash
          json_schema[k] = define v
        else
          json_schema[k] = v
        end
      end
    elsif definition.is_a? Array
      json_schema[:type] = :array
      json_schema[:items] = define definition[0]
    else
      json_schema[:type] = definition
    end
  end
end

.generate(definition) ⇒ Object



29
30
31
# File 'lib/json/schema/lite.rb', line 29

def self.generate(definition)
  define(definition).to_json
end