Class: Render::Definition
- Inherits:
-
Object
- Object
- Render::Definition
- Defined in:
- lib/render/definition.rb
Class Attribute Summary collapse
-
.instances ⇒ Object
Returns the value of attribute instances.
Class Method Summary collapse
- .find(id, raise_error = true) ⇒ Object
- .load!(definition) ⇒ Object
- .load_from_directory!(directory) ⇒ Object
- .parse_id(definition) ⇒ Object
- .parse_id!(definition) ⇒ Object
Class Attribute Details
.instances ⇒ Object
Returns the value of attribute instances.
6 7 8 |
# File 'lib/render/definition.rb', line 6 def instances @instances end |
Class Method Details
.find(id, raise_error = true) ⇒ Object
21 22 23 24 25 |
# 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) ⇒ Object
17 18 19 |
# File 'lib/render/definition.rb', line 17 def load!(definition) self.instances.merge!({ parse_id!(definition) => definition }) end |
.load_from_directory!(directory) ⇒ Object
8 9 10 11 12 13 14 15 |
# 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) ⇒ Object
31 32 33 |
# File 'lib/render/definition.rb', line 31 def parse_id(definition) definition[:id] end |
.parse_id!(definition) ⇒ Object
27 28 29 |
# File 'lib/render/definition.rb', line 27 def parse_id!(definition) parse_id(definition) || (raise Errors::Definition::NoId.new(definition)) end |