Module: Render
- Defined in:
- lib/render.rb,
lib/render/graph.rb,
lib/render/errors.rb,
lib/render/schema.rb,
lib/render/version.rb,
lib/render/attribute.rb,
lib/render/generator.rb,
lib/render/dottable_hash.rb,
lib/render/hash_attribute.rb,
lib/render/array_attribute.rb
Defined Under Namespace
Modules: Errors Classes: ArrayAttribute, Attribute, DottableHash, Generator, Graph, HashAttribute, Schema
Constant Summary collapse
- VERSION =
"0.0.3"
Class Attribute Summary collapse
-
.definitions ⇒ Object
Returns the value of attribute definitions.
-
.generators ⇒ Object
Returns the value of attribute generators.
-
.live ⇒ Object
Returns the value of attribute live.
-
.logger ⇒ Object
Returns the value of attribute logger.
-
.threading ⇒ Object
Returns the value of attribute threading.
Class Method Summary collapse
- .definition(title) ⇒ Object
- .load_definition!(definition) ⇒ Object
- .load_definitions!(directory) ⇒ Object
-
.parse_type(type) ⇒ Object
TODO better type parsing.
- .threading? ⇒ Boolean
Class Attribute Details
.definitions ⇒ Object
Returns the value of attribute definitions.
24 25 26 |
# File 'lib/render.rb', line 24 def definitions @definitions end |
.generators ⇒ Object
Returns the value of attribute generators.
24 25 26 |
# File 'lib/render.rb', line 24 def generators @generators end |
.live ⇒ Object
Returns the value of attribute live.
24 25 26 |
# File 'lib/render.rb', line 24 def live @live end |
.logger ⇒ Object
Returns the value of attribute logger.
24 25 26 |
# File 'lib/render.rb', line 24 def logger @logger end |
.threading ⇒ Object
Returns the value of attribute threading.
24 25 26 |
# File 'lib/render.rb', line 24 def threading @threading end |
Class Method Details
.definition(title) ⇒ Object
48 49 50 51 52 |
# File 'lib/render.rb', line 48 def definition(title) definitions.fetch(title.to_sym) rescue KeyError => error raise Errors::DefinitionNotFound.new(title) end |
.load_definition!(definition) ⇒ Object
43 44 45 46 |
# File 'lib/render.rb', line 43 def load_definition!(definition) title = definition.fetch(:universal_title, definition.fetch(:title)).to_sym self.definitions[title] = definition end |
.load_definitions!(directory) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/render.rb', line 34 def load_definitions!(directory) Dir.glob("#{directory}/**/*.json").each do |definition_file| logger.info("Reading #{definition_file} definition") definition_string = File.read(definition_file) parsed_definition = JSON.parse(definition_string).recursive_symbolize_keys! load_definition!(parsed_definition) end end |
.parse_type(type) ⇒ Object
TODO better type parsing
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/render.rb', line 55 def parse_type(type) return type unless type.is_a?(String) return UUID if type.match(/uuid/i) return Boolean if type.match(/boolean/i) return Float if type.match(/number/i) return Time if type.match(/date.*time/i) Object.const_get(type.capitalize) rescue NameError => error raise Errors::InvalidType.new(type) end |