esi 0.4.0 → 0.4.2

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: d47a1c60590cea3b27c56f4024cc40def5fe7c00
4
- data.tar.gz: eaee95bd3df0a5899d39fffb81c78d805f803bfe
3
+ metadata.gz: 738a00d0fccf472e015bd9cad297fa740de68a62
4
+ data.tar.gz: c7f73001c9801fbe5243d7711b6fa3eb01a717ad
5
5
  SHA512:
6
- metadata.gz: c91589ff35b7c1779d97f181967dbd8b5becb0176862674086f134cf647581946b5a6e33c34830c030e3c827c876d7a74e681d0c9721617c9337d8045ff1061c
7
- data.tar.gz: fc1779a7ac22b08b19789075f5d6029d60c29cc3468d19b5c01206e6d487d5aafe0a0966351a417dd91f1c23db3f836d0a0fcbce75f25a5fbd876d54e099696e
6
+ metadata.gz: 42fe74fd00136355d620f20f12c86ad3882b5dde5ca4a942b4d186a94b3933eb75c2f2dfd5cd2273c84a54c2b231ce3d26a987934b5a5576391938a5047d0b6c
7
+ data.tar.gz: 5998db7cccfbf0dd3435caaae037668cd50830bfabe57a2a1ed69b486e8fe2f91550c9afe2644281eb1fa41fa50021186c77ae75f160e824a884654a8aa77230
@@ -19,7 +19,6 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_dependency "oauth2", "~> 1.4"
21
21
  spec.add_dependency "addressable", "~> 2.3"
22
- spec.add_dependency "recursive-open-struct", "~> 1"
23
22
  spec.add_dependency "activesupport"
24
23
  spec.add_development_dependency "bundler", "~> 1.14"
25
24
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,5 +1,7 @@
1
1
  module Esi
2
2
  class AccessToken < OAuth2::AccessToken
3
+ EXPIRES_MARGIN = 30.seconds
4
+
3
5
  def initialize(*args)
4
6
  if args[0].is_a?(OAuth2::AccessToken)
5
7
  token = args[0]
@@ -13,5 +15,9 @@ module Esi
13
15
  def verify
14
16
  Esi::Response.new(get("/oauth/verify"))
15
17
  end
18
+
19
+ def expired?
20
+ expires? && (expires_at < EXPIRES_MARGIN.ago.to_i)
21
+ end
16
22
  end
17
23
  end
@@ -3,7 +3,7 @@ module Esi
3
3
  extend Forwardable
4
4
 
5
5
  attr_reader :access_token, :refresh_token, :expires_at
6
- def_delegators :token, :request, :get, :post, :delete, :patch, :put
6
+ def_delegators :token, :get, :post, :delete, :patch, :put
7
7
 
8
8
  class << self
9
9
  def authorize_url(redirect_uri:, scopes: nil)
@@ -36,6 +36,10 @@ module Esi
36
36
  @callback = callback if callback
37
37
  end
38
38
 
39
+ def request(*args)
40
+ token.request(*args)
41
+ end
42
+
39
43
  private
40
44
 
41
45
  def token
@@ -47,6 +51,8 @@ module Esi
47
51
  end
48
52
 
49
53
  def refresh_access_token
54
+ Esi.logger.debug "Refreshing access token"
55
+
50
56
  ActiveSupport::Notifications.instrument('esi.oauth.refresh_token') do
51
57
  @token = @token.refresh!
52
58
  @access_token = @token.token
@@ -1,5 +1,3 @@
1
- require 'recursive-open-struct'
2
-
3
1
  module Esi
4
2
  class Response
5
3
  extend Forwardable
@@ -11,7 +9,7 @@ module Esi
11
9
  def initialize(response, call=nil)
12
10
  @original_response = response
13
11
  @call = call
14
- @data = normalize_results
12
+ @data = MultiJson.load(body, symbolize_keys: true, object_class: OpenStruct) rescue {}
15
13
  end
16
14
 
17
15
  def merge(other_response)
@@ -31,10 +29,6 @@ module Esi
31
29
  @cached_until ||= headers[:expires] ? Time.parse(headers[:expires]) : nil
32
30
  end
33
31
 
34
- def response_json
35
- @response_json ||= MultiJson.load(body, symbolize_keys: true) rescue {}
36
- end
37
-
38
32
  def save
39
33
  return if call.nil?
40
34
  return if Esi.config.response_log_path.blank? || !Dir.exists?(Esi.config.response_log_path)
@@ -48,23 +42,5 @@ module Esi
48
42
  def method_missing(method, *args, &block)
49
43
  data.send(method, *args, &block)
50
44
  end
51
-
52
- private
53
-
54
- def normalize_results
55
- case response_json.class.to_s
56
- when 'Hash' then normalize_entry(response_json)
57
- when 'Array' then response_json.map { |e| normalize_entry(e) }
58
- else response_json
59
- end
60
- end
61
-
62
- def normalize_entry(entry)
63
- entry.is_a?(Hash) ? RecursiveOpenStruct.new(entry.transform_keys { |k| underscore(k).to_sym }, recurse_over_arrays: true) : entry
64
- end
65
-
66
- def underscore(str)
67
- str.to_s.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').gsub(/([a-z\d])([A-Z])/,'\1_\2').downcase
68
- end
69
45
  end
70
46
  end
@@ -1,3 +1,3 @@
1
1
  module Esi
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Hiemstra
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.3'
41
- - !ruby/object:Gem::Dependency
42
- name: recursive-open-struct
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: activesupport
57
43
  requirement: !ruby/object:Gem::Requirement