Class: Render::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/render/definition.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.instancesObject

Returns the value of attribute instances.



6
7
8
# File 'lib/render/definition.rb', line 6

def instances
  @instances
end

Class Method Details

.find(title) ⇒ Object



23
24
25
26
27
# File 'lib/render/definition.rb', line 23

def find(title)
  instances.fetch(title.to_sym)
rescue KeyError => error
  raise Errors::DefinitionNotFound.new(title)
end

.load!(definition) ⇒ Object



18
19
20
21
# File 'lib/render/definition.rb', line 18

def load!(definition)
  title = definition.fetch(:universal_title, definition.fetch(:title)).to_sym
  self.instances[title] = definition
end

.load_from_directory!(directory) ⇒ Object



8
9
10
11
12
13
14
15
16
# 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)
    json_definition = JSON.parse(definition_string)
    parsed_definition = Extensions::DottableHash.new(json_definition).recursively_symbolize_keys!
    load!(parsed_definition)
  end
end