esi 0.4.0 → 0.4.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 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