Class: Cmd::All
Instance Method Summary
collapse
#all_sensors, #all_sensors_table, #fail!, #with_redis, #with_safe_restore_of
#assert_array!, #assert_positive_integer!, #assert_ranged_float!, #camelize, #camelize_keys, #constantize, #each_subset, #parse_time, #subsets_of, #symbolize_keys, #titleize, #uniqid
Instance Method Details
#create(name, type) ⇒ Object
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/cmd.rb', line 100
def create(name, type)
with_redis do
klass = constantize("PulseMeter::Sensor::Timelined::#{type}")
puts "PulseMeter::Sensor::Timelined::#{type}"
fail! "Unknown sensor type #{type}" unless klass
sensor = klass.new(name, options.dup)
puts "Sensor created"
puts all_sensors_table
end
end
|
#create_simple(name, type) ⇒ Object
131
132
133
134
135
136
137
138
139
|
# File 'lib/cmd.rb', line 131
def create_simple(name, type)
with_redis do
klass = constantize("PulseMeter::Sensor::#{type}")
fail! "Unknown sensor type #{type}" unless klass
sensor = klass.new(name, options.dup)
puts "Sensor created"
puts all_sensors_table
end
end
|
#delete(name) ⇒ Object
92
93
94
95
|
# File 'lib/cmd.rb', line 92
def delete(name)
with_safe_restore_of(name) {|sensor| sensor.cleanup}
puts "Sensor #{name} deleted"
end
|
#drop(name, from, to) ⇒ Object
151
152
153
154
155
156
157
158
|
# File 'lib/cmd.rb', line 151
def drop(name, from, to)
time_from = parse_time(from)
time_to = parse_time(to)
with_safe_restore_of(name) do |sensor|
fail! "Sensor #{name} has no drop_within method" unless sensor.respond_to?(:drop_within)
sensor.drop_within(time_from, time_to)
end
end
|
#event(name, value) ⇒ Object
56
57
58
59
60
61
62
63
64
|
# File 'lib/cmd.rb', line 56
def event(name, value)
if "json" == options[:format]
value = JSON.parse(value)
end
with_safe_restore_of(name) {|sensor|
sensor.event(value)
}
PulseMeter.command_aggregator.wait_for_pending_events
end
|
#reduce ⇒ Object
44
45
46
47
48
49
50
51
|
# File 'lib/cmd.rb', line 44
def reduce
with_redis do
puts 'Registered sensors to be reduced'
puts all_sensors_table
PulseMeter::Sensor::Timeline.reduce_all_raw
puts "DONE"
end
end
|
#sensors ⇒ Object
38
39
40
|
# File 'lib/cmd.rb', line 38
def sensors
with_redis {puts all_sensors_table(options[:format])}
end
|
#timeline(name, seconds) ⇒ Object
69
70
71
72
73
74
75
76
|
# File 'lib/cmd.rb', line 69
def timeline(name, seconds)
with_safe_restore_of(name) do |sensor|
puts sensor.
timeline(seconds).
map {|data| [data.start_time, data.value || '']}.
to_table(options[:format])
end
end
|
#timeline_within(name, from, till) ⇒ Object
81
82
83
84
85
86
87
88
|
# File 'lib/cmd.rb', line 81
def timeline_within(name, from, till)
with_safe_restore_of(name) do |sensor|
puts sensor.
timeline_within(Time.parse(from), Time.parse(till)).
map {|data| [data.start_time, data.value || '']}.
to_table(options[:format])
end
end
|
#udp_proxy(host, port) ⇒ Object
162
163
164
165
166
167
168
|
# File 'lib/cmd.rb', line 162
def udp_proxy(host, port)
with_redis do
puts 'Starting UDP server'
server = PulseMeter::UDPServer.new(host, port)
server.start
end
end
|
#update(name) ⇒ Object
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# File 'lib/cmd.rb', line 114
def update(name)
with_safe_restore_of(name) do |sensor|
opts = options.dup
[:ttl, :interval, :reduce_delay, :raw_data_ttl, :annotation].each do |attr|
opts[attr] ||= sensor.send(attr)
end
klass = sensor.class
new_sensor = klass.new(name, opts)
new_sensor.dump!(false)
puts "Sensor updated"
puts all_sensors_table
end
end
|
#value(name) ⇒ Object
142
143
144
145
146
147
|
# File 'lib/cmd.rb', line 142
def value(name)
with_safe_restore_of(name) do |sensor|
fail! "Sensor #{name} has no value method" unless sensor.respond_to?(:value)
puts "Value: #{sensor.value}"
end
end
|