Sha256: 2633db97ca84f23cbba5d102ea11d504cd7547bd830dc2e49ea6cdd7ad1d4ad5
Contents?: true
Size: 900 Bytes
Versions: 4
Compression:
Stored size: 900 Bytes
Contents
module Render class Definition @instances = {} class << self attr_accessor :instances 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 def load!(definition) title = definition.fetch(:universal_title, definition.fetch(:title)).to_sym self.instances[title] = definition end def find(title) instances.fetch(title.to_sym) rescue KeyError => error raise Errors::DefinitionNotFound.new(title) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
render-0.0.8 | lib/render/definition.rb |
render-0.0.7 | lib/render/definition.rb |
render-0.0.6 | lib/render/definition.rb |
render-0.0.5 | lib/render/definition.rb |