pulse-meter 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|