Class: MDQuery::Model::MeasureModel
- Inherits:
-
Object
- Object
- MDQuery::Model::MeasureModel
- Defined in:
- lib/mdquery/model.rb
Instance Attribute Summary collapse
-
#cast ⇒ Object
readonly
Returns the value of attribute cast.
-
#definition ⇒ Object
readonly
Returns the value of attribute definition.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
Instance Method Summary collapse
- #do_cast(value) ⇒ Object
-
#initialize(attrs) ⇒ MeasureModel
constructor
A new instance of MeasureModel.
- #inspect ⇒ Object
- #select_string(region_segment_models) ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize(attrs) ⇒ MeasureModel
Returns a new instance of MeasureModel.
145 146 147 148 |
# File 'lib/mdquery/model.rb', line 145 def initialize(attrs) MDQuery::Util.assign_attributes(self, attrs, [:key, :definition, :cast]) validate end |
Instance Attribute Details
#cast ⇒ Object (readonly)
Returns the value of attribute cast.
143 144 145 |
# File 'lib/mdquery/model.rb', line 143 def cast @cast end |
#definition ⇒ Object (readonly)
Returns the value of attribute definition.
142 143 144 |
# File 'lib/mdquery/model.rb', line 142 def definition @definition end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
141 142 143 |
# File 'lib/mdquery/model.rb', line 141 def key @key end |
Instance Method Details
#do_cast(value) ⇒ Object
165 166 167 168 169 170 171 172 |
# File 'lib/mdquery/model.rb', line 165 def do_cast(value) cast_lambda=CASTS[cast] if cast if cast_lambda cast_lambda.call(value) else value end end |
#inspect ⇒ Object
156 157 158 |
# File 'lib/mdquery/model.rb', line 156 def inspect "#<MeasureDefinition: key=#{key.inspect}, definition=#{definition.inspect}, cast=#{cast.inspect}>" end |
#select_string(region_segment_models) ⇒ Object
160 161 162 163 |
# File 'lib/mdquery/model.rb', line 160 def select_string(region_segment_models) modified_def = region_segment_models.reduce(definition){|modef,rsm| rsm.do_modify(key, modef)} "#{modified_def} as #{key}" end |
#validate ⇒ Object
150 151 152 153 154 |
# File 'lib/mdquery/model.rb', line 150 def validate raise "no key!" if !key raise "no definition!" if !definition raise "unknown cast: #{cast.inspect}" if cast && !CASTS.keys.include?(cast) end |