class Lacerda::Specification

Attributes

schema[R]
service[R]

Public Class Methods

new(service, schema_or_file) click to toggle source
# File lib/lacerda/specification.rb, line 9
def initialize(service, schema_or_file)
  @service = service
  load_schema(schema_or_file)
end

Public Instance Methods

objects() click to toggle source
# File lib/lacerda/specification.rb, line 14
def objects
  return [] unless @schema[:definitions]
  @schema[:definitions].map do |scoped_name, schema|
    next if !scoped_name.index(SCOPE_SEPARATOR)
    object_description_class.new(service, scoped_name, schema)
  end.compact
end

Private Instance Methods

load_schema(schema_or_file) click to toggle source
# File lib/lacerda/specification.rb, line 24
def load_schema(schema_or_file)
  if schema_or_file.is_a?(Hash)
    @schema = schema_or_file
  elsif File.readable?(schema_or_file)
    @schema = JSON.parse(open(schema_or_file).read)
  else
    @schema = {}
  end
  @schema = @schema.with_indifferent_access
  @schema[:definitions] ||= {}
  @schema
end