range.rb
1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Kalibro::Range < Kalibro::Model
attr_accessor :id, :beginning, :end, :reading_id, :comments
def id=(value)
@id = value.to_i
end
def beginning=(value)
@beginning = value.to_f
@beginning = -1.0/0.0 if value == "-INF"
end
def beginning
if !@beginning.nil?
case @beginning.to_s
when "-Infinity": "-INF"
else @beginning
end
end
end
def end=(value)
@end = value.to_f
@end = 1.0/0.0 if value =~ /INF/
end
def end
if !@end.nil?
case @end.to_s
when "Infinity": "INF"
else @end
end
end
end
def reading_id=(value)
@reading_id = value.to_i
end
def label
reading.label
end
def grade
reading.grade
end
def color
reading.color
end
def self.ranges_of( metric_configuration_id )
response = request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range]
response = [] if response.nil?
response = [response] if response.is_a?(Hash)
response.map { |range| new range }
end
def save( metric_configuration_id )
begin
self.id = self.class.request(:save_range, {:range => self.to_hash, :metric_configuration_id => metric_configuration_id})[:range_id]
true
rescue Exception => exception
add_error exception
false
end
end
private
def reading
@reading ||= Kalibro::Reading.find(reading_id)
@reading
end
end