Module: Pusher

Defined in:
lib/harvester/pusher.rb

Class Method Summary collapse

Class Method Details

.activate(topic, endpoint) ⇒ Object



10
11
12
13
14
15
# File 'lib/harvester/pusher.rb', line 10

def self.activate topic, endpoint
  listener = EZMQ::Subscriber.new :connect, port: 6060, topic: topic, decode: -> m { Oj.load m }
  listener.listen do |message, topic|
    puts write message
  end
end

.use_or_create(db_name) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/harvester/pusher.rb', line 25

def self.use_or_create(db_name)
  dbs = @connection.get_database_list.map { |db| db["name"] }
  @connection.create_database db_name unless dbs.include? db_name
  @connection = InfluxDB::Client.new db_name, host: Settings.influx_host, 
                                            username: Settings.influx_user, 
                                            password: Settings.influx_pass
end

.write(data) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/harvester/pusher.rb', line 17

def self.write data
  series = data.delete :series_name
  db = data.delete :database_name
  use_or_create db
  @connection.write_point(series, data)
  data.length
end