da_face 0.0.8 → 0.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ac9be35622fe807456eee7ba3a5bdbe7aff4a07
4
- data.tar.gz: 32d4b76b8a0f8c8d05480a7303a51cf768534d98
3
+ metadata.gz: 868b1428a056a9be26cea60cb95d55b9ed0810b7
4
+ data.tar.gz: 9fcc13e2e0724b38977f32abd7e11d76959dc05b
5
5
  SHA512:
6
- metadata.gz: 4684b43bfe784ec61e70badd31106c158b99e995d3d2f3b114c57e76a2b52cee76185255b8b63d17c5f33b2c234823b865a26ebedf16f1a1b498ea7c36850d0c
7
- data.tar.gz: 243d01748f52b47362d7a25281018fcea2c35490a603d2bb41024ed298ccf4d5dca78fbafab48d14043e51c683d8902e1c39b512b7bc5e7afa8057b51c56313b
6
+ metadata.gz: 2172ad20e3370a2a205d08dfdb93e4c8784e7234dee42a81be55bd9e0c3e51fe668ee97e1f87e61115bef01bd361adf9757def0252a789f20ee06a5adfd2f977
7
+ data.tar.gz: fc860afe4305c39b942f15b71ffbf7a987bcfe553910a46813f9a9856cf7123551cf0e26f97152a54bf9b17686a0ad2182f2fa1dc53cc1204f41ee88b480eb68
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- da_face (0.0.8)
4
+ da_face (0.0.9)
5
5
  excon
6
6
  json
7
7
  yajl-ruby
data/lib/da_face.rb CHANGED
@@ -7,6 +7,7 @@ require "da_face/api/adapter"
7
7
  require "da_face/api/adapters/base"
8
8
  require "da_face/api/adapters/excon_adapter"
9
9
  require "da_face/api/adapters/em_http_request_adapter"
10
+ require "da_face/api/rate_limit_info"
10
11
  require "da_face/api/push"
11
12
  require "da_face/api/push_log"
12
13
  require "da_face/api/push_log_entry"
@@ -34,12 +35,16 @@ require "yajl"
34
35
 
35
36
  module DaFace
36
37
  class << self
37
- attr_accessor :configuration
38
+ attr_accessor :configuration, :rate_limit_status
38
39
 
39
40
  def configuration
40
41
  @configuration ||= Configuration.new
41
42
  end
42
43
 
44
+ def rate_limit_status
45
+ @rate_limit_status ||= DaFace::Api::RateLimitStatus.new
46
+ end
47
+
43
48
  def configure
44
49
  yield(configuration)
45
50
  self.configuration
@@ -52,6 +52,9 @@ module DaFace
52
52
  '?' + URI.encode(params.collect{ |key, value| "#{key}=#{value}"}.join('&')) unless params.empty?
53
53
  end
54
54
 
55
+ def set_rate_limit_status rate_limit, remaining
56
+ DaFace.rate_limit_status = DaFace::Api::RateLimitStatus.new(:limit => rate_limit, :remaining => remaining)
57
+ end
55
58
 
56
59
  end
57
60
  end
@@ -8,25 +8,39 @@ module DaFace
8
8
 
9
9
  def get path, params={}
10
10
  response = connection.get :path => "#{path}#{url_params(params)}", :headers => get_headers
11
- return parse_body(response.body)
11
+ handle_response(response)
12
12
  end
13
13
 
14
14
  def post path, payload
15
15
  response = connection.post :path => path, :body => encode_form(payload), :headers => post_headers
16
- return {} if response.body.empty?
17
- return parse_body(response.body)
16
+ handle_response(response)
18
17
  end
19
18
 
20
19
  def put path, payload
21
20
  response = connection.put :path => "#{path}", :body => encode_form(payload), :headers => post_headers
22
- return {} if response.body.empty?
23
- return parse_body(response.body)
21
+ handle_response(response)
24
22
  end
25
23
 
26
24
  def parse_body body
27
- JSON.parse(body)
25
+ if body.empty?
26
+ {}
27
+ else
28
+ JSON.parse(body)
29
+ end
30
+ end
31
+
32
+ def handle_response response
33
+ rate_limit_info = extract_rate_limit_info(response)
34
+ set_rate_limit_status(rate_limit_info[:limit], rate_limit_info[:remaining])
35
+ return parse_body(response.body)
36
+ end
37
+
38
+ def extract_rate_limit_info response
39
+ {
40
+ :limit => response.headers['x-ratelimit-limit'],
41
+ :remaining => response.headers['x-ratelimit-remaining']
42
+ }
28
43
  end
29
-
30
44
  end
31
45
  end
32
46
  end
@@ -0,0 +1,13 @@
1
+ module DaFace
2
+ module Api
3
+ class RateLimitStatus
4
+ attr_reader :limit, :remaining
5
+
6
+ def initialize attrs={}
7
+ @rate_limit = attrs[:limit]
8
+ @remaining_credits = attrs[:remaining]
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module DaFace
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: da_face
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rayko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-03 00:00:00.000000000 Z
11
+ date: 2014-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,6 +134,7 @@ files:
134
134
  - lib/da_face/api/push_log.rb
135
135
  - lib/da_face/api/push_log_entry.rb
136
136
  - lib/da_face/api/push_subscription.rb
137
+ - lib/da_face/api/rate_limit_info.rb
137
138
  - lib/da_face/configuration.rb
138
139
  - lib/da_face/datasift/da_object.rb
139
140
  - lib/da_face/datasift/demographic.rb