neurio 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/neurio.rb +32 -20
- metadata +30 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21fef552b4b70cb5489a9ce83408f748a1605b48
|
4
|
+
data.tar.gz: 3d7ab4772cf23e30c614b4ca8d0783f7c37860f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f00738845047878ee0717997c29eee6f0dbc9c08bd208e2ac51cc89a4990b04cd62083ee9bf664cd46225b5924c5693540fd4eddb87bc7dead7844af3f773d6
|
7
|
+
data.tar.gz: 7e7482419de38a39cc9839a1e1d810d607567338c77644feced46aebe8b928dfd2a5f3333e6f962d7c60cccb5bdc427c90682f1083f0897a1e102250ced8b383
|
data/lib/neurio.rb
CHANGED
@@ -1,44 +1,45 @@
|
|
1
1
|
require 'httparty'
|
2
|
+
require_relative 'neurio/reading'
|
2
3
|
|
3
4
|
class Neurio
|
4
5
|
include HTTParty
|
5
6
|
base_uri "https://api.neur.io"
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
@consumption_energy = values["consumptionEnergy"]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
|
8
|
+
# Construct a new Neurio API instance
|
9
|
+
#
|
10
|
+
# @param options [Hash] configuration options
|
11
|
+
# @option options client_id [String] the Neurio client id
|
12
|
+
# @option options client_secret [String] the Neurio client secret
|
17
13
|
def initialize(options)
|
18
14
|
@client_secret = options[:client_secret]
|
19
15
|
@client_id = options[:client_id]
|
20
16
|
raise ArgumentError.new("client_id and client_secret must be specified") unless @client_secret && @client_id
|
21
17
|
end
|
22
18
|
|
19
|
+
# Get the most recent sensor reading
|
20
|
+
#
|
21
|
+
# @param sensor_id [String] The sensor id to retrieve data for
|
22
|
+
# @return [Neurio::Reading]
|
23
23
|
def last(sensor_id = default_sensor_id)
|
24
24
|
headers = {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
|
25
25
|
query = {"sensorId" => sensor_id}
|
26
26
|
response = self.class.get("/v1/samples/live/last", :headers => headers, :query => query)
|
27
|
-
Reading.new(response)
|
28
|
-
end
|
29
|
-
|
30
|
-
def user
|
31
|
-
unless @user
|
32
|
-
headers = {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
|
33
|
-
@user = self.class.get("/v1/users/current", :headers => headers)
|
34
|
-
end
|
35
|
-
@user
|
27
|
+
Reading.new(response, sensor_id)
|
36
28
|
end
|
37
29
|
|
30
|
+
|
31
|
+
# Look up the ID of the first (and usually only) sensor associated with this account
|
32
|
+
#
|
33
|
+
# @return [String] The Neurio sensorId
|
38
34
|
def default_sensor_id
|
39
35
|
user["locations"][0]["sensors"][0]["sensorId"]
|
40
36
|
end
|
41
37
|
|
38
|
+
# Get recent sensor readings since last_timestamp.
|
39
|
+
#
|
40
|
+
# @param last_timestamp [DateTime] Timestamp of last sample already received. API defaults to 2 minutes ago if omitted.
|
41
|
+
# @param sensor_id [String] The sensor id to retrieve data for
|
42
|
+
# @return [Array<Neurio::Reading>] Array of sensor readings
|
42
43
|
def live(last_timestamp = nil, sensor_id = default_sensor_id)
|
43
44
|
headers = {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
|
44
45
|
query = {"sensorId" => sensor_id}
|
@@ -47,10 +48,11 @@ class Neurio
|
|
47
48
|
end
|
48
49
|
|
49
50
|
response = self.class.get("/v1/samples/live", :headers => headers, :query => query)
|
50
|
-
response.map{|x| Reading.new(x)}
|
51
|
+
response.map{|x| Reading.new(x, sensor_id)}
|
51
52
|
end
|
52
53
|
|
53
54
|
private
|
55
|
+
# Obtain an API token for this client
|
54
56
|
def token
|
55
57
|
unless @token
|
56
58
|
options = {"grant_type" => "client_credentials", "client_id" => @client_id, "client_secret" => @client_secret}
|
@@ -60,5 +62,15 @@ class Neurio
|
|
60
62
|
end
|
61
63
|
@token
|
62
64
|
end
|
65
|
+
|
66
|
+
# Obtain a user object associated with the token
|
67
|
+
def user
|
68
|
+
unless @user
|
69
|
+
headers = {"content_type" => "application/json", "authorization" => "Bearer #{token}"}
|
70
|
+
@user = self.class.get("/v1/users/current", :headers => headers)
|
71
|
+
end
|
72
|
+
@user
|
73
|
+
end
|
74
|
+
|
63
75
|
|
64
76
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neurio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Francis
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.13'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.13.5
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,34 @@ dependencies:
|
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0.13'
|
30
|
-
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: redcarpet
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
31
53
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
54
|
+
version: '3.3'
|
33
55
|
description: API functionality for Neurio energy monitoring devices. See http://neur.io/
|
34
56
|
email: joe@lostapathy.com
|
35
57
|
executables: []
|
@@ -57,8 +79,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
79
|
version: '0'
|
58
80
|
requirements: []
|
59
81
|
rubyforge_project:
|
60
|
-
rubygems_version: 2.4.
|
82
|
+
rubygems_version: 2.4.8
|
61
83
|
signing_key:
|
62
84
|
specification_version: 4
|
63
85
|
summary: Neurio API
|
64
86
|
test_files: []
|
87
|
+
has_rdoc:
|