class MinimumTerm::Contract

Attributes

schema[R]
service[R]

Public Class Methods

new(service, schema_or_file) click to toggle source
# File lib/minimum-term/contract.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/minimum-term/contract.rb, line 14
def objects
  return [] unless @schema[:definitions]
  @schema[:definitions].map do |scoped_name, schema|
    object_description_class.new(service, scoped_name, schema)
  end
end

Private Instance Methods

load_schema(schema_or_file) click to toggle source
# File lib/minimum-term/contract.rb, line 23
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
end