class Render::Definition

Attributes

instances[RW]

Public Class Methods

find(id, raise_error = true) click to toggle source
# File lib/render/definition.rb, line 21
def find(id, raise_error = true)
  instances.fetch(id)
rescue KeyError => error
  raise Errors::Definition::NotFound.new(id) if raise_error
end
load!(definition) click to toggle source
# File lib/render/definition.rb, line 17
def load!(definition)
  self.instances.merge!({ parse_id!(definition) => definition })
end
load_from_directory!(directory) click to toggle source
# File lib/render/definition.rb, line 8
def load_from_directory!(directory)
  Dir.glob("#{directory}/**/*.json").each do |definition_file|
    Render.logger.info("Reading #{definition_file} definition")
    definition_string = File.read(definition_file)
    parsed_definition = JSON.parse(definition_string, { symbolize_names: true })
    load!(parsed_definition)
  end
end
parse_id(definition) click to toggle source
# File lib/render/definition.rb, line 31
def parse_id(definition)
  definition[:id]
end
parse_id!(definition) click to toggle source
# File lib/render/definition.rb, line 27
def parse_id!(definition)
  parse_id(definition) || (raise Errors::Definition::NoId.new(definition))
end