Class: Hachioji::Taikikanshi::MeasuredValue

Inherits:
Object
  • Object
show all
Defined in:
lib/hachioji/taikikanshi/measured_value.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(area_name: "", date: nil, values: [], value_type: :float) ⇒ MeasuredValue

Returns a new instance of MeasuredValue.



10
11
12
13
14
15
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 10

def initialize(area_name: "", date: nil, values: [], value_type: :float)
  @area_name = area_name
  @date = date
  @values = values
  available_average if value_type == :integer || value_type == :float
end

Instance Attribute Details

#area_nameObject

Returns the value of attribute area_name.



8
9
10
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 8

def area_name
  @area_name
end

#dateObject

Returns the value of attribute date.



8
9
10
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 8

def date
  @date
end

#valuesObject

Returns the value of attribute values.



8
9
10
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 8

def values
  @values
end

Instance Method Details

#available_averageObject



21
22
23
24
25
26
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 21

def available_average
  define_singleton_method("average") {
    eff_values = @values.compact
    eff_values.inject(0){ |sum,v| sum += v }.to_f / eff_values.count
  }
end

#hour_value_at(hour) ⇒ Object



17
18
19
# File 'lib/hachioji/taikikanshi/measured_value.rb', line 17

def hour_value_at(hour)
  @values[hour-1]
end