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