Class: SAAL::DBStore
Instance Method Summary collapse
- #average(sensor, from, to) ⇒ Object
- #db_initialize ⇒ Object
- #db_wipe ⇒ Object
- #each ⇒ Object
-
#initialize(conffile = SAAL::DBCONF) ⇒ DBStore
constructor
A new instance of DBStore.
- #maximum(sensor, from, to) ⇒ Object
- #minimum(sensor, from, to) ⇒ Object
- #write(sensor, date, value) ⇒ Object
Constructor Details
#initialize(conffile = SAAL::DBCONF) ⇒ DBStore
Returns a new instance of DBStore.
4 5 6 7 8 |
# File 'lib/dbstore.rb', line 4 def initialize(conffile=SAAL::DBCONF) @dbopts = YAML::load(File.new(conffile)) @db = nil db_initialize end |
Instance Method Details
#average(sensor, from, to) ⇒ Object
31 32 33 |
# File 'lib/dbstore.rb', line 31 def average(sensor, from, to) db_range("AVG", sensor, from, to) end |
#db_initialize ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/dbstore.rb', line 10 def db_initialize db_query "CREATE TABLE IF NOT EXISTS sensor_reads (sensor VARCHAR(100), date INT, value FLOAT, INDEX USING HASH (sensor), INDEX USING BTREE (date))" end |
#db_wipe ⇒ Object
19 20 21 |
# File 'lib/dbstore.rb', line 19 def db_wipe db_query "DROP TABLE sensor_reads" end |
#each ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/dbstore.rb', line 42 def each db_query "SELECT sensor,date,value FROM sensor_reads" do |r| r.num_rows.times do row = r.fetch_row yield [row[0],row[1].to_i, row[2].to_f] end end end |
#maximum(sensor, from, to) ⇒ Object
38 39 40 |
# File 'lib/dbstore.rb', line 38 def maximum(sensor, from, to) db_range("MAX", sensor, from, to) end |
#minimum(sensor, from, to) ⇒ Object
35 36 37 |
# File 'lib/dbstore.rb', line 35 def minimum(sensor, from, to) db_range("MIN", sensor, from, to) end |
#write(sensor, date, value) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/dbstore.rb', line 23 def write(sensor, date, value) raise ArgumentError, "Trying to store an empty sensor read" if !value raise ArgumentError, "Trying to store an empty timestamp" if !date raise ArgumentError, "Trying to store a timestamp <= 0" if date <= 0 db_query "INSERT INTO sensor_reads VALUES ('"+db_quote(sensor.to_s)+"',"+date.to_s+","+value.to_s+")" end |