Class: Neurio

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/neurio.rb

Defined Under Namespace

Classes: Reading

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Neurio

Returns a new instance of Neurio.

Raises:

  • (ArgumentError)


17
18
19
20
21
# File 'lib/neurio.rb', line 17

def initialize(options)
  @client_secret = options[:client_secret]
  @client_id = options[:client_id]
  raise ArgumentError.new("client_id and client_secret must be specified") unless @client_secret && @client_id
end

Instance Method Details

#default_sensor_idObject



38
39
40
# File 'lib/neurio.rb', line 38

def default_sensor_id
  user["locations"][0]["sensors"][0]["sensorId"]
end

#last(sensor_id = default_sensor_id) ⇒ Object



23
24
25
26
27
28
# File 'lib/neurio.rb', line 23

def last(sensor_id = default_sensor_id)
  headers =  {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
  query = {"sensorId" => sensor_id}
  response = self.class.get("/v1/samples/live/last", :headers => headers, :query => query)
  Reading.new(response)
end

#live(last_timestamp = nil, sensor_id = default_sensor_id) ⇒ Object



42
43
44
45
46
47
48
49
50
51
# File 'lib/neurio.rb', line 42

def live(last_timestamp = nil, sensor_id = default_sensor_id)
  headers =  {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
  query = {"sensorId" => sensor_id}
  if last_timestamp
    query["last"] = last_timestamp.iso8601(3)
  end
  
  response = self.class.get("/v1/samples/live", :headers => headers, :query => query)
  response.map{|x| Reading.new(x)}
end

#userObject



30
31
32
33
34
35
36
# File 'lib/neurio.rb', line 30

def user
  unless @user
    headers =  {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
    @user = self.class.get("/v1/users/current", :headers => headers)
  end
  @user
end