pulse-meter 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/pulse-meter/sensor/timeline.rb +19 -7
- data/lib/pulse-meter/version.rb +1 -1
- metadata +2 -5
@@ -110,22 +110,34 @@ module PulseMeter
|
|
110
110
|
raise ArgumentError unless from.kind_of?(Time) && till.kind_of?(Time)
|
111
111
|
start_time, end_time = from.to_i, till.to_i
|
112
112
|
current_interval_id = get_interval_id(start_time) + interval
|
113
|
-
|
113
|
+
keys = []
|
114
|
+
ids = []
|
114
115
|
while current_interval_id < end_time
|
115
|
-
|
116
|
+
ids << current_interval_id
|
117
|
+
keys << data_key(current_interval_id)
|
116
118
|
current_interval_id += interval
|
117
119
|
end
|
120
|
+
values = if keys.empty?
|
121
|
+
[]
|
122
|
+
else
|
123
|
+
redis.mget(*keys)
|
124
|
+
end
|
125
|
+
res = []
|
126
|
+
ids.zip(values) do |(id, val)|
|
127
|
+
res << if val.nil?
|
128
|
+
get_raw_value(id)
|
129
|
+
else
|
130
|
+
SensorData.new(Time.at(id), val)
|
131
|
+
end
|
132
|
+
end
|
118
133
|
res
|
119
134
|
end
|
120
135
|
|
121
|
-
# Returns sensor data for given interval
|
122
|
-
# If the interval is not over yet makes its data in-memory summarization
|
136
|
+
# Returns sensor data for given interval, in-memory summarization
|
123
137
|
# and returns calculated value
|
124
138
|
# @param interval_id [Fixnum]
|
125
139
|
# @return [SensorData]
|
126
|
-
def
|
127
|
-
interval_data_key = data_key(interval_id)
|
128
|
-
return SensorData.new(Time.at(interval_id), redis.get(interval_data_key)) if redis.exists(interval_data_key)
|
140
|
+
def get_raw_value(interval_id)
|
129
141
|
interval_raw_data_key = raw_data_key(interval_id)
|
130
142
|
return SensorData.new(Time.at(interval_id), summarize(interval_raw_data_key)) if redis.exists(interval_raw_data_key)
|
131
143
|
SensorData.new(Time.at(interval_id), nil)
|
data/lib/pulse-meter/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pulse-meter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-06-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: gon-sinatra
|
@@ -390,9 +390,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
390
390
|
- - ! '>='
|
391
391
|
- !ruby/object:Gem::Version
|
392
392
|
version: '0'
|
393
|
-
segments:
|
394
|
-
- 0
|
395
|
-
hash: -914537785395250315
|
396
393
|
requirements: []
|
397
394
|
rubyforge_project:
|
398
395
|
rubygems_version: 1.8.24
|