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