Class: MDQuery::Model::MeasureModel

Inherits:
Object
  • Object
show all
Defined in:
lib/mdquery/model.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#castObject (readonly)

Returns the value of attribute cast.



143
144
145
# File 'lib/mdquery/model.rb', line 143

def cast
  @cast
end

#definitionObject (readonly)

Returns the value of attribute definition.



142
143
144
# File 'lib/mdquery/model.rb', line 142

def definition
  @definition
end

#keyObject (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

#inspectObject



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

#validateObject



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