esi 0.3.6 → 0.4.0

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: e1c7c9881ffd3be2d8d42fa51cf9e4ba6828cb3c
4
- data.tar.gz: 0c3cf816d472ef63c6d071a8ee6589cbc4e58e8f
3
+ metadata.gz: d47a1c60590cea3b27c56f4024cc40def5fe7c00
4
+ data.tar.gz: eaee95bd3df0a5899d39fffb81c78d805f803bfe
5
5
  SHA512:
6
- metadata.gz: d801070c1264b959f51312455eabfb010c3ee37b49edbed942f8d0e2a531946aaa42de24d98d4c5fd228e77df19a244f60800e7e934bb08790c47702741d4892
7
- data.tar.gz: c5acc9810725635caf1cab02facd1c144be550f6110398fcaef533d53b852b54fee7b3116d1d9957e0d75e3c835c266fe53f39842039cac87f422cc59810fea9
6
+ metadata.gz: c91589ff35b7c1779d97f181967dbd8b5becb0176862674086f134cf647581946b5a6e33c34830c030e3c827c876d7a74e681d0c9721617c9337d8045ff1061c
7
+ data.tar.gz: fc1779a7ac22b08b19789075f5d6029d60c29cc3468d19b5c01206e6d487d5aafe0a0966351a417dd91f1c23db3f836d0a0fcbce75f25a5fbd876d54e099696e
data/README.md CHANGED
@@ -57,8 +57,13 @@ Create a file `config/initializers/esi.rb` with the following options:
57
57
  # Set esi api version to dev
58
58
  Esi.config.api_version = :dev
59
59
 
60
- # Save all responses in this folder
60
+ # Save all raw JSON responses in this folder
61
61
  Esi.config.response_log_path = Rails.root.join('tmp', 'esi')
62
62
 
63
- # Enable Caching
63
+ # Caching
64
+
65
+ ESI will cache API requests that auto expire based on the `Expires-At` header returned by ESI. By default [`ActiveSupport::Cache::MemoryStore`](http://api.rubyonrails.org/classes/ActiveSupport/Cache/MemoryStore.html) is used. When using Rails you can configure ESI to use the cache configured in your app by setting the `cache` config variable.
66
+
64
67
  Esi.config.cache = Rails.cache
68
+
69
+ To disable caching you can set this value to `nil`.
data/lib/esi.rb CHANGED
@@ -2,7 +2,10 @@ require "oauth2"
2
2
  require "forwardable"
3
3
  require "ostruct"
4
4
  require "addressable/uri"
5
+ require "active_support/cache"
5
6
  require "active_support/notifications"
7
+ require 'active_support/core_ext/string'
8
+ require "active_support/core_ext/class/attribute"
6
9
 
7
10
  module Esi
8
11
  autoload :VERSION, 'esi/version'
@@ -70,12 +73,12 @@ module Esi
70
73
  timeout: 60,
71
74
  client_id: nil,
72
75
  client_secret: nil,
73
- cache: nil,
76
+ cache: ActiveSupport::Cache::MemoryStore.new,
74
77
  scopes: SCOPES
75
78
  }
76
79
 
77
80
  class << self
78
- attr_writer :api_version, :logger
81
+ attr_writer :api_version, :config, :logger, :cache
79
82
 
80
83
  def config
81
84
  @config ||= OpenStruct.new(DEFAULT_CONFIG)
@@ -88,7 +91,11 @@ module Esi
88
91
  end
89
92
 
90
93
  def cache
91
- Esi.config.cache
94
+ if Esi.config.cache.nil?
95
+ @cache ||= ActiveSupport::Cache::NullStore.new
96
+ else
97
+ Esi.config.cache
98
+ end
92
99
  end
93
100
 
94
101
  def api_version
data/lib/esi/calls.rb CHANGED
@@ -34,6 +34,14 @@ module Esi
34
34
 
35
35
  attr_accessor :path, :params
36
36
 
37
+ def name
38
+ @name ||= self.class.name.remove('Esi::Calls::').underscore.to_sym
39
+ end
40
+
41
+ def cache_key
42
+ @cache_key ||= ActiveSupport::Cache.expand_cache_key([name, params].flatten, :esi)
43
+ end
44
+
37
45
  def method
38
46
  @method ||= :get
39
47
  end
@@ -497,18 +505,6 @@ module Esi
497
505
  self.cache_duration = 300
498
506
  end
499
507
 
500
- class Structures < Base
501
- def initialize
502
- @path = "/universe/structures"
503
- end
504
- end
505
-
506
- class Structure < Base
507
- def initialize(structure_id)
508
- @path = "/universe/structures/#{structure_id}"
509
- end
510
- end
511
-
512
508
  class Route < Base
513
509
  def initialize(origin_id, destination_id)
514
510
  @path = "/route/#{origin_id}/#{destination_id}"
data/lib/esi/client.rb CHANGED
@@ -1,6 +1,3 @@
1
- require 'active_support/core_ext/string'
2
- require 'set'
3
-
4
1
  module Esi
5
2
  class Client
6
3
  MAX_ATTEMPTS = 2
@@ -58,9 +55,7 @@ module Esi
58
55
 
59
56
  def cached_response(klass, *args, &block)
60
57
  call = klass.new(*args)
61
- return make_call(call, &block) unless Esi.cache
62
- cache_key = [klass.name, args].flatten.to_set.hash
63
- Esi.cache.fetch(cache_key, expires_in: klass.cache_duration) do
58
+ Esi.cache.fetch(call.cache_key, expires_in: klass.cache_duration) do
64
59
  make_call(call, &block)
65
60
  end
66
61
  end
data/lib/esi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Esi
2
- VERSION = "0.3.6"
2
+ VERSION = "0.4.0"
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.3.6
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Hiemstra