pebble_timeline 0.0.3 → 0.0.4

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: b9f963dfdcfe444374718db5508c0642afb794d0
4
- data.tar.gz: 7f4201115b6e339698823d7c880edc55c2ac6154
3
+ metadata.gz: 39ea03fd9c14fd853cda3e9c23da0633546052c1
4
+ data.tar.gz: 3eadd2e606c098795a77764392bce11122c88a6c
5
5
  SHA512:
6
- metadata.gz: 8466a192ee66f3b3cb3dc90b101fd97742bc15d0ddaeb61a902fa7fe12ccbef495a047958803aadafaac2843c44c51df71dc2e9789d02f3757a48e1e61665eeb
7
- data.tar.gz: eda34eb53e0dd988fddd88dc6a1df9b7b6082c06bd581a8247e0e2e1779310f2da10459a1d0150928d034302a8ec218157ec5486da38f7efa3ed03244fa4f0cf
6
+ metadata.gz: 16dbc4acd357bd4563909c0e51a9a9c4f8f45aa3573c318d2129ddd9ed3568c198b907adfd5df7d9601cf6c1ff353f622ec4365264094cfde84c4f61445da07b
7
+ data.tar.gz: e6f2a2a840b30e3ffe1ad9acbbd445206cbc30c6b1e687466b89199c53b48aaa2cea726ed5b44b93c5a5ca8ef4c4c089012e69cbc9a34a2a35110d75df208417
data/README.md CHANGED
@@ -23,22 +23,23 @@ Or install it yourself as:
23
23
  ```
24
24
  require 'pebble_timeline'
25
25
 
26
- api = PebbleTimeline::API.new(API_KEY)
26
+ PebbleTimeline.configure do |config|
27
+ config.api_key = API_KEY
28
+ end
27
29
 
28
30
  # Shared pins
29
- pins = PebbleTimeline::Pins.new(api)
31
+ pins = PebbleTimeline::Pins.new
30
32
  pins.create(id: "test-1", topics: 'test', time: "2015-06-19T20:00:00Z", layout: { type: 'genericPin', title: 'test 1' })
31
33
  pins.update("test-1", topics: 'test', time: "2015-06-19T20:00:00Z", layout: { type: 'genericPin', title: 'test 1' })
32
34
  pins.delete("test-1")
33
35
 
34
36
  # User pins
35
- user_pins = PebbleTimeline::Pins.new(api, 'user', USER_TOKEN)
37
+ user_pins = PebbleTimeline::Pins.new('user', USER_TOKEN)
36
38
  user_pins.create(id: "test-1", time: "2015-06-12T16:42:00Z", layout: { type: 'genericPin', title: 'test 1' })
37
39
  user_pins.delete("test-1")
38
40
 
39
41
  # Subscriptions
40
- subscriptions = PebbleTimeline::Subscriptions.new(api)
41
- subscriptions.get(USER_TOKEN)
42
+ PebbleTimeline::Subscriptions.get(USER_TOKEN)
42
43
  ```
43
44
 
44
45
  ## Contributing
@@ -1,28 +1,29 @@
1
1
  module PebbleTimeline
2
2
  class API
3
- def initialize(api_key = nil)
4
- raise ConfigMissingAPIKeyError, 'You must provide an API Key' unless PebbleTimeline.config.api_key || api_key
3
+ def initialize
4
+ raise ConfigMissingAPIKeyError, 'You must provide an API Key' unless PebbleTimeline.config.api_key
5
5
 
6
- @api_key = PebbleTimeline.config.api_key || api_key
6
+ @api_key = PebbleTimeline.config.api_key
7
7
  @base_url = PebbleTimeline.config.base_url
8
8
  end
9
9
 
10
- def call(url, http_method, params={})
11
- response = send(http_method, url, params)
10
+ def self.call(url, http_method, params={})
11
+ @api ||= self.new
12
+ response = @api.send(http_method, url, params)
12
13
  response.body
13
14
  end
14
15
 
15
- def connection
16
- @connection ||= Faraday.new(url: @api_url) do |faraday|
17
- faraday.headers['Content-Type'] = 'application/json'
18
- faraday.headers['X-API-Key'] = @api_key
19
- faraday.adapter Faraday.default_adapter
20
- faraday.use PebbleTimeline::Middleware::ErrorDetector
21
- end
22
- end
23
-
24
16
  private
25
17
 
18
+ def connection
19
+ @connection ||= Faraday.new(url: @api_url) do |faraday|
20
+ faraday.headers['Content-Type'] = 'application/json'
21
+ faraday.headers['X-API-Key'] = @api_key
22
+ faraday.adapter Faraday.default_adapter
23
+ faraday.use PebbleTimeline::Middleware::ErrorDetector
24
+ end
25
+ end
26
+
26
27
  def post(path, params)
27
28
  connection.post do |req|
28
29
  req.url resource_url(path)
@@ -1,6 +1,7 @@
1
1
  module PebbleTimeline
2
2
 
3
3
  class APIError < StandardError
4
+ attr_accessor :code
4
5
  end
5
6
 
6
7
  class ConfigError < StandardError
@@ -5,7 +5,15 @@ module PebbleTimeline
5
5
  def call(env)
6
6
  @app.call(env).on_complete do |env|
7
7
  unless (200..299).include? env[:status]
8
- raise APIError, env[:body]
8
+ error = APIError.new env[:body]
9
+
10
+ begin
11
+ response = JSON.load env[:body]
12
+ error = APIError.new response['errorMessage']
13
+ error.code = response['errorCode']
14
+ ensure
15
+ raise error
16
+ end
9
17
  end
10
18
  end
11
19
  end
@@ -1,24 +1,23 @@
1
1
  module PebbleTimeline
2
2
  class Pins
3
- def initialize(master, scope = 'shared', user_token = nil)
4
- @master = master
3
+ def initialize(scope = 'shared', user_token = nil)
5
4
  @scope = scope
6
5
  @user_token = user_token if @scope == 'user'
7
6
  end
8
7
 
9
8
  def create(params = {})
10
9
  params.merge!(user_token: @user_token) if @user_token
11
- @master.call("#{@scope}/pins/#{params[:id]}", :put, params)
10
+ API.call("#{@scope}/pins/#{params[:id]}", :put, params)
12
11
  end
13
12
 
14
13
  def update(id, params = {})
15
14
  params.merge!(user_token: @user_token) if @user_token
16
- @master.call("#{@scope}/pins/#{id}.json", :put, params)
15
+ API.call("#{@scope}/pins/#{id}.json", :put, params)
17
16
  end
18
17
 
19
18
  def delete(id, params = {})
20
19
  params.merge!(user_token: @user_token) if @user_token
21
- @master.call("#{@scope}/pins/#{id}", :delete, params)
20
+ API.call("#{@scope}/pins/#{id}", :delete, params)
22
21
  end
23
22
  end
24
23
  end
@@ -1,11 +1,7 @@
1
1
  module PebbleTimeline
2
2
  class Subscriptions
3
- def initialize(master)
4
- @master = master
5
- end
6
-
7
- def get(user_token)
8
- JSON.load @master.call("user/subscriptions", :get, { user_token: user_token })
3
+ def self.get(user_token)
4
+ JSON.load API.call("user/subscriptions", :get, { user_token: user_token })
9
5
  end
10
6
  end
11
7
  end
@@ -1,3 +1,3 @@
1
1
  module PebbleTimeline
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pebble_timeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salim Hbeiliny
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-19 00:00:00.000000000 Z
11
+ date: 2015-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport