rjawbone 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20c6aa273e95e88d99b8085af177d680046f29eb
4
- data.tar.gz: f69457d42f818b7947680afc9ac08183a4802c5f
3
+ metadata.gz: cfc7014b01b14972ce975bdbae8d42b48fa540d6
4
+ data.tar.gz: d25108a6faba246f304309765b29fdcec79a1c1b
5
5
  SHA512:
6
- metadata.gz: dc502bf2b1e94b3d7137ccac6780b3d49a636a779d97b668f231899694957d77cdebf928d57ae3bfc002c8c614b6d8b6fa0ae631c1bd601c23868b500dd973ea
7
- data.tar.gz: b3ca3c4e3e457f55ab57ecb1b1d9c2abed8bcd9172789304d068995dde44e4db3b379eb463be8e121e37f15f4d9c823f69c3736ad1c4b98fa50e1760afcb6c9b
6
+ metadata.gz: c1874eef6085d99dd154f5b10a81b7c0d3b5936d158206c3012b551da3f25e8b30c53e6015de697204099e84bbc94dabea93f2d203c3e35d3d0fc8b49b6ab64e
7
+ data.tar.gz: 8b6b146bc4b92976c25dcd6bca235d65bfad5cc7117242976faeede0fe05d2d4ba312362e2c34bd764fe3cd4c1386b52e274075f532c2298a8cd44415eb24346
data/README.md CHANGED
@@ -1,7 +1,128 @@
1
1
  # Rjawbone
2
2
 
3
+ <dl>
4
+ <dt>Homepage</dt><dd><a href="#">homepage</a></dd>
5
+ <dt>Author</dt><dd><a href="">Taylor Daugherty</a></dd>
6
+ <dt>Documentation</dt><dd><a href="#">Ruby Gems</a></dd>
7
+ </dl>
8
+
9
+ [![Gem Version](https://badge.fury.io/rb/rjawbone.svg)](https://badge.fury.io/rb/rjawbone)
3
10
  [![Build Status](https://travis-ci.org/tylrd/rjawbone.svg?branch=master)](https://travis-ci.org/tylrd/rjawbone)
4
11
  [![Code Climate](https://codeclimate.com/github/tylrd/rjawbone/badges/gpa.svg)](https://codeclimate.com/github/tylrd/rjawbone)
5
12
  [![Test Coverage](https://codeclimate.com/github/tylrd/rjawbone/badges/coverage.svg)](https://codeclimate.com/github/tylrd/rjawbone/coverage)
6
13
  [![Inline docs](http://inch-ci.org/github/tylrd/rjawbone.svg?branch=master)](http://inch-ci.org/github/tylrd/rjawbone)
7
14
  [![Dependency Status](https://gemnasium.com/tylrd/rjawbone.svg)](https://gemnasium.com/tylrd/rjawbone)
15
+
16
+ ## Installation
17
+
18
+ ```ruby
19
+ gem install rjawbone
20
+ ```
21
+
22
+
23
+ ## Configuration
24
+
25
+ ```ruby
26
+ Rjawbone.configure do |config|
27
+ config.client_id = ENV['JAWBONE_CLIENT']
28
+ config.client_secret = ENV['JAWBONE_SECRET']
29
+ config.redirect_uri = redirect_uri
30
+ config.scope = %w(basic_read sleep_read move_read) # any scope you need here
31
+ end
32
+ ```
33
+
34
+ For a rails project, you can put this in `config/initializers/rjawbone.rb`.
35
+
36
+
37
+ ## Authentication
38
+
39
+ This gem provides two helper methods for following the OAuth 2.0 flow.
40
+
41
+ ```ruby
42
+ # Returns a url for your configured jawbone application
43
+ Rjawbone::Oauth.authorization_url
44
+
45
+ # Exchanges the authorization code for an access token
46
+ Rjawbone::Oauth.exchange_code(code)
47
+ ```
48
+
49
+ After obtaining an access token, you will need to persist it.
50
+
51
+ [Here](https://jawbone.com/up/developer/authentication) you can read about the authorization flow.
52
+
53
+ ## Client
54
+
55
+ The API calls are made by initializing a Rjawbone client object.
56
+
57
+ The ACCESS_TOKEN is retrieved from the Authentication step.
58
+
59
+ ```ruby
60
+ Rjawbone::Client.new(access_token: ACCESS_TOKEN, refresh_token: REFRESH)
61
+
62
+ # OR
63
+
64
+ Rjawbone::Client.new do |config|
65
+ config.access_token = TOKEN
66
+ config.refresh_token = REFRESH
67
+ end
68
+ ```
69
+
70
+ After initializing the client object, you can retrieve any object allowed by your configured scope.
71
+
72
+
73
+ ## Resources
74
+
75
+ #### Lists
76
+
77
+ ```ruby
78
+ # Returns a Rjawbone::Model::List object
79
+ list = client.moves
80
+
81
+ # The list has a collection attribute, composed of Rjawbone::Model::Item objects
82
+ # The list object has methods that assist in retrieving information
83
+
84
+ # Pagination
85
+ list.next_page
86
+
87
+ # Enumerability
88
+ list.map {|move| move.xid }
89
+ list.select {|move| move.details.distance >= 5000}
90
+ ```
91
+
92
+ #### Items
93
+
94
+ ```ruby
95
+ # The item object has all the fields from the raw API response
96
+ # When a "sleep" or "move" type, the Rjawbone::Model::Item can implement the #ticks method
97
+
98
+ list = client.moves
99
+ move = list.first
100
+
101
+ # Returns a Rjawbone::Model::List of objects of "ticks"
102
+ # The ticks associated with that move resource
103
+ ticks = move.ticks
104
+
105
+ # These ticks are a list, so include enumerablity and pagination methods
106
+ ticks.reject {|tick| tick.steps <= 50}
107
+ ticks = client.moves.map {|item| item.ticks}
108
+ ```
109
+
110
+ #### Resources
111
+
112
+ Implemented endpoints:
113
+ - moves
114
+ - sleeps
115
+ - heartrates
116
+
117
+ ## TODO
118
+
119
+ - band_events
120
+ - body_events
121
+ - goals
122
+ - meals
123
+ - mood
124
+ - settings
125
+ - timezone
126
+ - trends
127
+ - friends
128
+
@@ -0,0 +1,11 @@
1
+ module Rjawbone
2
+ module Rails
3
+ module JawboneHelper
4
+
5
+ def jawbone_url
6
+ Rjawbone::Oauth.authorization_url
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -2,7 +2,7 @@ module Rjawbone
2
2
  module API
3
3
  module Moves
4
4
 
5
- def move_list(params = {})
5
+ def moves(params = {})
6
6
  get_object(build_endpoint(Rjawbone::MOVES_USER, params), Rjawbone::Model::List)
7
7
  end
8
8
 
@@ -2,10 +2,25 @@ module Rjawbone
2
2
  module API
3
3
  module Sleeps
4
4
 
5
- def sleep_list
5
+ def sleeps
6
6
  get_object(Rjawbone::SLEEPS_USER, Rjawbone::Model::List)
7
7
  end
8
8
 
9
+ def sleep_details(xid, params = {})
10
+ url = "#{Rjawbone::SLEEPS_ENDPOINT}/#{xid}"
11
+ get_object(build_endpoint(url, params), Rjawbone::Model::Details)
12
+ end
13
+
14
+ def sleeps_graph(xid, params = {})
15
+ endpoint = "#{Rjawbone::MOVES_ENDPOINT}/#{xid}/image"
16
+ # TODO
17
+ end
18
+
19
+ def sleep_ticks(xid, params = {})
20
+ url = "#{Rjawbone::MOVES_ENDPOINT}/#{xid}/ticks"
21
+ get_object(build_endpoint(url, params), Rjawbone::Model::List)
22
+ end
23
+
9
24
  end
10
25
  end
11
26
  end
@@ -0,0 +1,6 @@
1
+ module Rjawbone
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Rjawbone
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rjawbone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Daugherty
@@ -166,6 +166,7 @@ files:
166
166
  - LICENSE.txt
167
167
  - README.md
168
168
  - Rakefile
169
+ - app/helpers/jawbone/rails/jawbone_helper.rb
169
170
  - bin/console
170
171
  - bin/setup
171
172
  - exe/jawbone
@@ -183,6 +184,7 @@ files:
183
184
  - lib/rjawbone/models/list.rb
184
185
  - lib/rjawbone/models/sleeps.rb
185
186
  - lib/rjawbone/oauth.rb
187
+ - lib/rjawbone/rails.rb
186
188
  - lib/rjawbone/utils.rb
187
189
  - lib/rjawbone/version.rb
188
190
  - rjawbone.gemspec