Class: PRRD::Entity
- Inherits:
-
Object
- Object
- PRRD::Entity
- Defined in:
- lib/prrd.rb
Overview
Entity base class
Direct Known Subclasses
Database::Archive, Database::Datasource, Graph::Area, Graph::Color, Graph::Comment, Graph::Definition, Graph::Hrule, Graph::Line, Graph::Print, Graph::Shift, Graph::Textalign, Graph::Vrule
Instance Attribute Summary collapse
-
#data ⇒ Object
Accessors.
-
#keys ⇒ Object
Accessors.
Instance Method Summary collapse
-
#initialize(values = nil) ⇒ Entity
constructor
Constructor.
-
#method_missing(m, *args, &block) ⇒ Boolean
Method missing.
-
#validate_presence(*keys) ⇒ Object
Validate presence of keys in data collection.
Constructor Details
#initialize(values = nil) ⇒ Entity
Constructor
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/prrd.rb', line 135 def initialize(values = nil) @data = {} unless values.nil? values.each do |k, v| next unless @keys.include? k send "#{k}=".to_sym, v end end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Boolean
Method missing
159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/prrd.rb', line 159 def method_missing(m, *args, &block) ms = m.to_s if ms.include? '=' ms = ms[0..-2] if @keys.include? ms.to_sym @data[ms.to_sym] = args[0] return true end end super end |
Instance Attribute Details
#data ⇒ Object
Accessors
132 133 134 |
# File 'lib/prrd.rb', line 132 def data @data end |
#keys ⇒ Object
Accessors
132 133 134 |
# File 'lib/prrd.rb', line 132 def keys @keys end |
Instance Method Details
#validate_presence(*keys) ⇒ Object
Validate presence of keys in data collection
148 149 150 151 152 |
# File 'lib/prrd.rb', line 148 def validate_presence(*keys) keys.each do |k| fail 'Define a "%s" option' % k if !@data.key?(k) || @data[k].nil? end end |