class MDQuery::Model::MeasureModel
Attributes
cast[R]
definition[R]
key[R]
Public Class Methods
new(attrs)
click to toggle source
# File lib/mdquery/model.rb, line 145 def initialize(attrs) MDQuery::Util.assign_attributes(self, attrs, [:key, :definition, :cast]) validate end
Public Instance Methods
do_cast(value)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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