class AllQ::Stats
Public Instance Methods
base_send(_data)
click to toggle source
# File lib/allq/actions/stats.rb, line 55 def base_send(_data) { 'action' => 'stats', 'params' => {} } end
breakout(results)
click to toggle source
# File lib/allq/actions/stats.rb, line 40 def breakout(results) results.each do |server, s_data| s_data.delete('global') s_data.each do |tube, tube_data| interize(tube_data) end end results end
interize(hash)
click to toggle source
# File lib/allq/actions/stats.rb, line 50 def interize(hash) return {} if hash.nil? || hash.empty? hash.update(hash){ |_, v| v.to_i } end
merge_tube_data(original_hash, new_hash)
click to toggle source
# File lib/allq/actions/stats.rb, line 29 def merge_tube_data(original_hash, new_hash) if original_hash.nil? original_hash = {} end interize(new_hash) new_hash.each do |k, v| original_hash[k] = original_hash[k].to_i + v end original_hash end
rcv(data)
click to toggle source
# File lib/allq/actions/stats.rb, line 15 def rcv(data) return nil if data.to_s == '' || data.to_s.strip == '{}' results = JSON.parse(data) stats = {} return breakout(results) if @breakout results.each do |server, s_data| s_data.each do |tube, tube_data| stats[tube] = merge_tube_data(stats[tube], tube_data) end end stats end
setup()
click to toggle source
# File lib/allq/actions/stats.rb, line 4 def setup end
snd(data)
click to toggle source
# File lib/allq/actions/stats.rb, line 7 def snd(data) send_data = base_send(data) @breakout = data ? data[:breakout].to_s == "true" : false response = send_hash_as_json(send_data, true) rcv(response) end