summaryrefslogtreecommitdiff
path: root/v1/test.rb
blob: 16ab18adad4d396f734afff6a167c8f8894e1190 (plain)
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
int = Proc.new do  |x|
  x.to_i
end
float = Proc.new do |x|
  x.to_f
end
str = Proc.new do |x|
  x.to_s
end

def parse_to_hash s, conv
  h = {}
  puts s.split("\t").map { |i| i=i.split("::"); "#{i[0]} #{conv[i[0]].call}" }
  return h
end

common_conv = { "db" => str, "timestamp"=>float, "device_type"=>str, "type"=>str, "device_id"=>str, "battery" => int, "battery_numeric" => int, "rssi" => int, "rssi_numeric" => int }
rain_conv = {"rain_rate"=>float, "rain_total"=>float}.merge(common_conv)
wind_conv = {"chill"=>float, "temperature"=>float,"average_speed"=>float,"direction"=>int,"gust"=>float}.merge(common_conv)
temp_conv = {"humidity"=>float, "humidity_status"=>str,"humidity_status_numeric"=>int,"temperature"=>float}.merge(common_conv)
conv = { "rain" => rain_conv, "wind" => wind_conv, "temp" => temp_conv }

while line = STDIN.gets
  db = line.split("\t").first.split("::")[1]
  parse_to_hash line,  conv[db]
end