Class: JSON::SchemaGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/json/schema_generator.rb,
lib/json/schema_generator/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, version = 'draft3') ⇒ SchemaGenerator

Returns a new instance of SchemaGenerator.



10
11
12
13
14
15
# File 'lib/json/schema_generator.rb', line 10

def initialize name, version = 'draft3'
  @buffer = StringIO.new
  @name = name
  @version = 'draft-03' if version == 'draft3'
  @version = 'draft-04' if version == 'draft4'
end

Class Method Details

.generate(name, data, version) ⇒ Object



4
5
6
7
# File 'lib/json/schema_generator.rb', line 4

def generate name, data, version
  generator = JSON::SchemaGenerator.new name, version
  generator.generate data
end

Instance Method Details

#generate(raw_data) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/json/schema_generator.rb', line 17

def generate raw_data
  # Write header
  @buffer.puts "{"
  @buffer.puts "\"$schema\": \"http://json-schema.org/#{@version}/schema#\","
  @buffer.print '"description": "Generated from '
  @buffer.print @name
  @buffer.print " with shasum "
  @buffer.print Digest::SHA1.hexdigest raw_data
  @buffer.puts '",'

  # 
  data = JSON.load(raw_data)

  @buffer.puts create_hash(data)
  close
  result
end