cachebar 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OGIwMWMwMDhlNjhkZTRkMGVjNDA3OTg4NzA3YzBkODFlYzMyY2I4ZQ==
5
+ data.tar.gz: !binary |-
6
+ MDZlOGQ1ZjM3OTQ5MzU4Yjc0MzdiNTJjZTYxNWQ5ZWFkMTA0NjZmYQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NGQ3N2Y0Y2ZkZmU0YTMwMTUwY2Y5M2RhOWFkMjAxMjM1MTVhZDA4Y2FhMmYx
10
+ MzIzMGQ2ZmM5MmFmYjVmNjY1MGQ3ZGI1MjU3YjNiZDcyZGUzOWViYjVkZDIz
11
+ MDNkMTc2YTFhMjFjNzU0MzI0NzE5MjdmZDk4YTk4NWJlYzc3Yjk=
12
+ data.tar.gz: !binary |-
13
+ YTBlYTNkN2MwMjdlM2JiYTJlMmYzMzkwMmQ1ZjY1ZTkwYzc4NjYyMzVhY2Q3
14
+ NTRjZDIxY2ExYzI1ZWIzMGYxY2M1ZDQ3M2M3YjhlZTYzM2VjOTI3NGVmMzVl
15
+ NmJlZmRmZWI3NGM2YzQ4MzM3OGY1ZTExNzM2OWUzZTJmY2QzZWY=
data/Gemfile CHANGED
@@ -9,9 +9,9 @@ group :development do
9
9
  gem "shoulda"
10
10
  gem "bundler", "~> 1.0"
11
11
  gem "jeweler", "~> 1.6"
12
- gem "rcov"
12
+ gem "rcov", :platforms => :ruby_18
13
13
  gem "webmock"
14
- gem 'vcr'
14
+ gem 'vcr', '~> 1.11'
15
15
  gem 'mocha'
16
16
  gem 'rake', '~> 0.8.7'
17
17
  gem 'SystemTimer', :platforms => :ruby_18
data/HISTORY CHANGED
@@ -5,3 +5,13 @@
5
5
  * Store a backup of responses incase the API service goes down.
6
6
  * If an exception or timeout occurs and there is no backup an exception is raised.
7
7
  * If a bad response is received the backup will be used if available otherwise the bad response will be returned
8
+ == 1.0.1 / 2011-06-01
9
+ * Include gemspec in release
10
+ * Allow non-required keys via `require_keys` method
11
+ == 1.0.2 / 2011-11-17
12
+ * Only cache get requests requests
13
+ * SystemTimer is no longer a hard dep because it's not needed or available on ruby 1.9
14
+ * Don't extend core classes
15
+ == 1.1.0 / 2012-4-23
16
+ * Update to work with latest version of HTTParty
17
+ * Change name of gem (gem names should be all lowercase)
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # CacheBar
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/vigetlabs/cachebar.png)](https://codeclimate.com/github/vigetlabs/cachebar)
4
+
3
5
  CacheBar is a simple API caching layer built on top of Redis and HTTParty.
4
6
 
5
7
  When a good request is made to the API through an HTTParty module or class configured to be cached, it caches the response body in Redis. The cache is set to expire in the configured length of time. All following identical requests use the cache in Redis. When the cache expires it will attempt to refill the cache with a new good response. If though the response that comes back is bad (there was timeout, a 404, or some other problem), then CacheBar will fetch a backup response we also store in Redis (in a separate non-expiring hash). When it pulls this backup response out it inserts it into the standard cache and sets it to expire in 5 minutes. This way we won't look for a new good response for another 5 minutes.
@@ -58,6 +60,17 @@ By default when we fallback to using a backup response, we then hold off looking
58
60
 
59
61
  HTTParty::HTTPCache.cache_stale_backup_time = 120 # 2 minutes
60
62
 
63
+ If you want to perform an action (say notify an error tracking service) when an exception happens while performing or processing a request you can specify a callback. The only requirement is that it responds to `call` and that `call` accepts 3 parameters. Those 3 in order will be the exception, the redis key name of the API, and the URL endpoint:
64
+
65
+ HTTParty::HTTPCache.exception_callback = lambda { |exception, api_name, url|
66
+ Airbrake.notify_or_ignore(exception, {
67
+ :component => api_name,
68
+ :url => url,
69
+ :cgi_data => ENV
70
+ })
71
+ }
72
+
73
+
61
74
  ### 2. Configuring an HTTParty module or class
62
75
 
63
76
  If you already have HTTParty included then you just need to use the `caches_api_responses` method to register that API for caching, and your done. The `caches_api_responses` takes a hash of options:
data/Rakefile CHANGED
@@ -32,14 +32,17 @@ Rake::TestTask.new(:test) do |test|
32
32
  test.verbose = true
33
33
  end
34
34
 
35
- require 'rcov/rcovtask'
36
- Rcov::RcovTask.new do |test|
37
- test.libs << 'test'
38
- test.pattern = 'test/**/test_*.rb'
39
- test.verbose = true
40
- test.rcov_opts << '--exclude "gems/*"'
41
- test.rcov_opts << '--sort coverage'
42
- test.rcov_opts << '--only-uncovered'
35
+ begin
36
+ require 'rcov/rcovtask'
37
+ Rcov::RcovTask.new do |test|
38
+ test.libs << 'test'
39
+ test.pattern = 'test/**/test_*.rb'
40
+ test.verbose = true
41
+ test.rcov_opts << '--exclude "gems/*"'
42
+ test.rcov_opts << '--sort coverage'
43
+ test.rcov_opts << '--only-uncovered'
44
+ end
45
+ rescue Exception
43
46
  end
44
47
 
45
48
  task :default => :test
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
@@ -2,29 +2,31 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: cachebar 1.1.1 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = %q{CacheBar}
8
- s.version = "1.0.2"
8
+ s.name = "cachebar"
9
+ s.version = "1.1.1"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Brian Landau", "David Eisinger"]
12
- s.date = %q{2011-11-17}
13
- s.description = %q{A simple API caching layer built on top of HTTParty and Redis}
14
- s.email = %q{brian.landau@viget.com}
14
+ s.date = "2014-10-24"
15
+ s.description = "A simple API caching layer built on top of HTTParty and Redis"
16
+ s.email = "brian.landau@viget.com"
15
17
  s.extra_rdoc_files = [
16
18
  "LICENSE.txt",
17
19
  "README.md"
18
20
  ]
19
21
  s.files = [
20
22
  ".document",
21
- "CacheBar.gemspec",
22
23
  "Gemfile",
23
24
  "HISTORY",
24
25
  "LICENSE.txt",
25
26
  "README.md",
26
27
  "Rakefile",
27
28
  "VERSION",
29
+ "cachebar.gemspec",
28
30
  "lib/cachebar.rb",
29
31
  "lib/httparty/httpcache.rb",
30
32
  "test/fixtures/user_timeline.json",
@@ -36,40 +38,39 @@ Gem::Specification.new do |s|
36
38
  "test/test_cachebar.rb",
37
39
  "test/twitter_api.rb"
38
40
  ]
39
- s.homepage = %q{http://github.com/vigetlabs/cachebar}
41
+ s.homepage = "http://github.com/vigetlabs/cachebar"
40
42
  s.licenses = ["MIT"]
41
- s.require_paths = ["lib"]
42
- s.rubygems_version = %q{1.6.2}
43
- s.summary = %q{A simple API caching layer built on top of HTTParty and Redis}
43
+ s.rubygems_version = "2.4.1"
44
+ s.summary = "A simple API caching layer built on top of HTTParty and Redis"
44
45
 
45
46
  if s.respond_to? :specification_version then
46
- s.specification_version = 3
47
+ s.specification_version = 4
47
48
 
48
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
50
  s.add_runtime_dependency(%q<redis>, [">= 0"])
50
51
  s.add_runtime_dependency(%q<redis-namespace>, [">= 0"])
51
- s.add_runtime_dependency(%q<httparty>, ["~> 0.7.7"])
52
+ s.add_runtime_dependency(%q<httparty>, ["~> 0.8.3"])
52
53
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
53
54
  s.add_development_dependency(%q<shoulda>, [">= 0"])
54
55
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
55
56
  s.add_development_dependency(%q<jeweler>, ["~> 1.6"])
56
57
  s.add_development_dependency(%q<rcov>, [">= 0"])
57
58
  s.add_development_dependency(%q<webmock>, [">= 0"])
58
- s.add_development_dependency(%q<vcr>, [">= 0"])
59
+ s.add_development_dependency(%q<vcr>, ["~> 1.11"])
59
60
  s.add_development_dependency(%q<mocha>, [">= 0"])
60
61
  s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
61
62
  s.add_development_dependency(%q<SystemTimer>, [">= 0"])
62
63
  else
63
64
  s.add_dependency(%q<redis>, [">= 0"])
64
65
  s.add_dependency(%q<redis-namespace>, [">= 0"])
65
- s.add_dependency(%q<httparty>, ["~> 0.7.7"])
66
+ s.add_dependency(%q<httparty>, ["~> 0.8.3"])
66
67
  s.add_dependency(%q<activesupport>, [">= 0"])
67
68
  s.add_dependency(%q<shoulda>, [">= 0"])
68
69
  s.add_dependency(%q<bundler>, ["~> 1.0"])
69
70
  s.add_dependency(%q<jeweler>, ["~> 1.6"])
70
71
  s.add_dependency(%q<rcov>, [">= 0"])
71
72
  s.add_dependency(%q<webmock>, [">= 0"])
72
- s.add_dependency(%q<vcr>, [">= 0"])
73
+ s.add_dependency(%q<vcr>, ["~> 1.11"])
73
74
  s.add_dependency(%q<mocha>, [">= 0"])
74
75
  s.add_dependency(%q<rake>, ["~> 0.8.7"])
75
76
  s.add_dependency(%q<SystemTimer>, [">= 0"])
@@ -77,14 +78,14 @@ Gem::Specification.new do |s|
77
78
  else
78
79
  s.add_dependency(%q<redis>, [">= 0"])
79
80
  s.add_dependency(%q<redis-namespace>, [">= 0"])
80
- s.add_dependency(%q<httparty>, ["~> 0.7.7"])
81
+ s.add_dependency(%q<httparty>, ["~> 0.8.3"])
81
82
  s.add_dependency(%q<activesupport>, [">= 0"])
82
83
  s.add_dependency(%q<shoulda>, [">= 0"])
83
84
  s.add_dependency(%q<bundler>, ["~> 1.0"])
84
85
  s.add_dependency(%q<jeweler>, ["~> 1.6"])
85
86
  s.add_dependency(%q<rcov>, [">= 0"])
86
87
  s.add_dependency(%q<webmock>, [">= 0"])
87
- s.add_dependency(%q<vcr>, [">= 0"])
88
+ s.add_dependency(%q<vcr>, ["~> 1.11"])
88
89
  s.add_dependency(%q<mocha>, [">= 0"])
89
90
  s.add_dependency(%q<rake>, ["~> 0.8.7"])
90
91
  s.add_dependency(%q<SystemTimer>, [">= 0"])
@@ -5,7 +5,7 @@ require 'active_support'
5
5
  require 'active_support/core_ext/module/aliasing'
6
6
  require 'active_support/core_ext/module/attribute_accessors'
7
7
  require 'active_support/core_ext/object/blank'
8
- if RUBY_VERSION.split('.')[1].to_i < 9
8
+ if RUBY_VERSION < '1.9'
9
9
  begin
10
10
  require 'system_timer'
11
11
  rescue LoadError
@@ -7,7 +7,8 @@ module HTTParty
7
7
  :logger,
8
8
  :redis,
9
9
  :timeout_length,
10
- :cache_stale_backup_time
10
+ :cache_stale_backup_time,
11
+ :exception_callback
11
12
 
12
13
  self.perform_caching = false
13
14
  self.apis = {}
@@ -40,7 +41,10 @@ module HTTParty
40
41
  else
41
42
  retrieve_and_store_backup(httparty_response)
42
43
  end
43
- rescue *exceptions
44
+ rescue *exceptions => e
45
+ if exception_callback && exception_callback.respond_to?(:call)
46
+ exception_callback.call(e, redis_key_name, normalized_uri)
47
+ end
44
48
  retrieve_and_store_backup
45
49
  end
46
50
  end
@@ -89,7 +93,7 @@ module HTTParty
89
93
  end
90
94
 
91
95
  def cache_key_name
92
- @cache_key_name ||= "api-cache:#{HTTPCache.apis[uri.host][:key_name]}:#{uri_hash}"
96
+ @cache_key_name ||= "api-cache:#{redis_key_name}:#{uri_hash}"
93
97
  end
94
98
 
95
99
  def uri_hash
@@ -101,7 +105,7 @@ module HTTParty
101
105
  end
102
106
 
103
107
  def backup_key
104
- "api-cache:#{HTTPCache.apis[uri.host][:key_name]}"
108
+ "api-cache:#{redis_key_name}"
105
109
  end
106
110
 
107
111
  def backup_response
@@ -124,6 +128,10 @@ module HTTParty
124
128
  def store_backup(response_body)
125
129
  redis.hset(backup_key, uri_hash, response_body)
126
130
  end
131
+
132
+ def redis_key_name
133
+ HTTPCache.apis[uri.host][:key_name]
134
+ end
127
135
 
128
136
  def log_message(message)
129
137
  logger.info("[HTTPCache]: #{message} for #{normalized_uri} - #{uri_hash.inspect}") if logger
@@ -101,6 +101,16 @@ class TestCacheBar < Test::Unit::TestCase
101
101
  end
102
102
  end
103
103
 
104
+ should 'call exception callback if defined' do
105
+ exception_callback = mock('exception_callback')
106
+ exception_callback.expects(:call).with(instance_of(MultiJson::DecodeError), 'twitter', 'https://api.twitter.com/1/user_timeline.json').returns(true)
107
+ HTTParty::HTTPCache.exception_callback = exception_callback
108
+ mock_response_in_backup(@uri_hash)
109
+
110
+ TwitterAPI.bogus_resource
111
+ HTTParty::HTTPCache.exception_callback = nil
112
+ end
113
+
104
114
  teardown do
105
115
  VCR.eject_cassette
106
116
  end
metadata CHANGED
@@ -1,21 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cachebar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brian Landau
9
8
  - David Eisinger
10
9
  autorequire:
11
10
  bindir: bin
12
- cert_chain: []
13
- date: 2012-04-23 00:00:00.000000000 Z
11
+ cert_chain:
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURPakNDQWlLZ0F3SUJB
14
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJETVJVd0V3WURWUVFEREF4aWNt
15
+ bGgKYm1wc1lXNWtZWFV4RlRBVEJnb0praWFKay9Jc1pBRVpGZ1ZuYldGcGJE
16
+ RVRNQkVHQ2dtU0pvbVQ4aXhrQVJrVwpBMk52YlRBZUZ3MHdOekV5TURVd016
17
+ QTVOVEJhRncwd09ERXlNRFF3TXpBNU5UQmFNRU14RlRBVEJnTlZCQU1NCkRH
18
+ SnlhV0Z1YW14aGJtUmhkVEVWTUJNR0NnbVNKb21UOGl4a0FSa1dCV2R0WVds
19
+ c01STXdFUVlLQ1pJbWlaUHkKTEdRQkdSWURZMjl0TUlJQklqQU5CZ2txaGtp
20
+ Rzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2aXpLNWJWNApOUUFSY2JQ
21
+ Z1pwTGtTYWFzaFRZMkpnTHFRYnh3OWVuNkY0SkZRc0FsYWxXdm1QcWFDNjVO
22
+ VXhwVitZYjdtSzFlClJ4LzZIQmxuOFFleXdWTXdZVFJ2cVlYWFZuMU1UTHhu
23
+ WUxwTGpRUXJzTTB2Wkl4d05zbVF6ck5xdnZkR0pSb2sKZ1NySng4bG5iM0xr
24
+ bU82OE42bUcxbEVUYXZpYVB3V2hsQjhtdTNrY0RHOWREWExXYlBMRE80d0hJ
25
+ SU1sKzBOYgp3cHlsN2Q0dnRlUkFYT0htQStJcjVLa1dsb0VocFBKL1d6VUw0
26
+ a3htdmNxVlNvMDRhRUdzR2VjZ2tnU1dmeUlECjdaNEtjRTFkcWpBMVJqbWVS
27
+ SHd4UWlsVzQ5R2t0aEIzQ1FoZmhzallKM0lZdlVmaVFJekRkcldMYkpweHpT
28
+ aGsKRTFJcFNMTWlQNHN2QlFJREFRQUJvemt3TnpBSkJnTlZIUk1FQWpBQU1B
29
+ c0dBMVVkRHdRRUF3SUVzREFkQmdOVgpIUTRFRmdRVTAwYnhVTkFTL1c1dFNX
30
+ UER2blNsbTNUZjlWWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBS1VDCjY2
31
+ OUhzWkJ5UmphYW5hM3NFNVR5bzU5L0NiOEx4cGhBUzBzOXJNdGlReWgyc1BJ
32
+ bm8wMi9wQUtyQzdTMnFud1oKOFc3MVZLcVJPR25CaGFTaldzaHdVMEJqYmND
33
+ cE5EQUU0WVBMUDNsVWxQNjlGdUdYYnNxdjlzWUgxR0tqZ0ZIaQpPQ00vdWg5
34
+ UEx0VU9RMGdSS2l4aTgvZWRuMTFzVXhZTE1qcFRoYWdJVS9rencySi94UW9V
35
+ cE9nekh6ckRuTjAwCjhWV0UyN013NEJNY2tSelRqZ3lFYkdCNitqMU5ZYWFR
36
+ NzZhMXExeUZjM1hpUjljclpoeVRtWFQ4ODdsUENlM0IKUUhqeW00ZTR5L0Zt
37
+ WEJKanBPL1R0Um9ZZDhhNVlUQ2FPc01MN00vbmIvWHJBcnZFM2w1SmFORVhr
38
+ aEgvbkdzNwp3UjlodWlzVE1sRVNYM1JlR0tVPQotLS0tLUVORCBDRVJUSUZJ
39
+ Q0FURS0tLS0tCg==
40
+ date: 2014-10-24 00:00:00.000000000 Z
14
41
  dependencies:
15
42
  - !ruby/object:Gem::Dependency
16
43
  name: redis
17
44
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
45
  requirements:
20
46
  - - ! '>='
21
47
  - !ruby/object:Gem::Version
@@ -23,7 +49,6 @@ dependencies:
23
49
  type: :runtime
24
50
  prerelease: false
25
51
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
52
  requirements:
28
53
  - - ! '>='
29
54
  - !ruby/object:Gem::Version
@@ -31,7 +56,6 @@ dependencies:
31
56
  - !ruby/object:Gem::Dependency
32
57
  name: redis-namespace
33
58
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
59
  requirements:
36
60
  - - ! '>='
37
61
  - !ruby/object:Gem::Version
@@ -39,7 +63,6 @@ dependencies:
39
63
  type: :runtime
40
64
  prerelease: false
41
65
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
66
  requirements:
44
67
  - - ! '>='
45
68
  - !ruby/object:Gem::Version
@@ -47,23 +70,22 @@ dependencies:
47
70
  - !ruby/object:Gem::Dependency
48
71
  name: httparty
49
72
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
73
  requirements:
52
74
  - - ~>
53
75
  - !ruby/object:Gem::Version
54
- version: 0.8.3
76
+ version: !binary |-
77
+ MC44LjM=
55
78
  type: :runtime
56
79
  prerelease: false
57
80
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
81
  requirements:
60
82
  - - ~>
61
83
  - !ruby/object:Gem::Version
62
- version: 0.8.3
84
+ version: !binary |-
85
+ MC44LjM=
63
86
  - !ruby/object:Gem::Dependency
64
87
  name: activesupport
65
88
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
89
  requirements:
68
90
  - - ! '>='
69
91
  - !ruby/object:Gem::Version
@@ -71,7 +93,6 @@ dependencies:
71
93
  type: :runtime
72
94
  prerelease: false
73
95
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
96
  requirements:
76
97
  - - ! '>='
77
98
  - !ruby/object:Gem::Version
@@ -79,7 +100,6 @@ dependencies:
79
100
  - !ruby/object:Gem::Dependency
80
101
  name: shoulda
81
102
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
103
  requirements:
84
104
  - - ! '>='
85
105
  - !ruby/object:Gem::Version
@@ -87,7 +107,6 @@ dependencies:
87
107
  type: :development
88
108
  prerelease: false
89
109
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
110
  requirements:
92
111
  - - ! '>='
93
112
  - !ruby/object:Gem::Version
@@ -95,39 +114,38 @@ dependencies:
95
114
  - !ruby/object:Gem::Dependency
96
115
  name: bundler
97
116
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
117
  requirements:
100
118
  - - ~>
101
119
  - !ruby/object:Gem::Version
102
- version: '1.0'
120
+ version: !binary |-
121
+ MS4w
103
122
  type: :development
104
123
  prerelease: false
105
124
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
125
  requirements:
108
126
  - - ~>
109
127
  - !ruby/object:Gem::Version
110
- version: '1.0'
128
+ version: !binary |-
129
+ MS4w
111
130
  - !ruby/object:Gem::Dependency
112
131
  name: jeweler
113
132
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
133
  requirements:
116
134
  - - ~>
117
135
  - !ruby/object:Gem::Version
118
- version: '1.6'
136
+ version: !binary |-
137
+ MS42
119
138
  type: :development
120
139
  prerelease: false
121
140
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
141
  requirements:
124
142
  - - ~>
125
143
  - !ruby/object:Gem::Version
126
- version: '1.6'
144
+ version: !binary |-
145
+ MS42
127
146
  - !ruby/object:Gem::Dependency
128
147
  name: rcov
129
148
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
149
  requirements:
132
150
  - - ! '>='
133
151
  - !ruby/object:Gem::Version
@@ -135,7 +153,6 @@ dependencies:
135
153
  type: :development
136
154
  prerelease: false
137
155
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
156
  requirements:
140
157
  - - ! '>='
141
158
  - !ruby/object:Gem::Version
@@ -143,7 +160,6 @@ dependencies:
143
160
  - !ruby/object:Gem::Dependency
144
161
  name: webmock
145
162
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
163
  requirements:
148
164
  - - ! '>='
149
165
  - !ruby/object:Gem::Version
@@ -151,7 +167,6 @@ dependencies:
151
167
  type: :development
152
168
  prerelease: false
153
169
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
170
  requirements:
156
171
  - - ! '>='
157
172
  - !ruby/object:Gem::Version
@@ -159,23 +174,22 @@ dependencies:
159
174
  - !ruby/object:Gem::Dependency
160
175
  name: vcr
161
176
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
177
  requirements:
164
- - - ! '>='
178
+ - - ~>
165
179
  - !ruby/object:Gem::Version
166
- version: '0'
180
+ version: !binary |-
181
+ MS4xMQ==
167
182
  type: :development
168
183
  prerelease: false
169
184
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
185
  requirements:
172
- - - ! '>='
186
+ - - ~>
173
187
  - !ruby/object:Gem::Version
174
- version: '0'
188
+ version: !binary |-
189
+ MS4xMQ==
175
190
  - !ruby/object:Gem::Dependency
176
191
  name: mocha
177
192
  requirement: !ruby/object:Gem::Requirement
178
- none: false
179
193
  requirements:
180
194
  - - ! '>='
181
195
  - !ruby/object:Gem::Version
@@ -183,7 +197,6 @@ dependencies:
183
197
  type: :development
184
198
  prerelease: false
185
199
  version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
200
  requirements:
188
201
  - - ! '>='
189
202
  - !ruby/object:Gem::Version
@@ -191,23 +204,22 @@ dependencies:
191
204
  - !ruby/object:Gem::Dependency
192
205
  name: rake
193
206
  requirement: !ruby/object:Gem::Requirement
194
- none: false
195
207
  requirements:
196
208
  - - ~>
197
209
  - !ruby/object:Gem::Version
198
- version: 0.8.7
210
+ version: !binary |-
211
+ MC44Ljc=
199
212
  type: :development
200
213
  prerelease: false
201
214
  version_requirements: !ruby/object:Gem::Requirement
202
- none: false
203
215
  requirements:
204
216
  - - ~>
205
217
  - !ruby/object:Gem::Version
206
- version: 0.8.7
218
+ version: !binary |-
219
+ MC44Ljc=
207
220
  - !ruby/object:Gem::Dependency
208
221
  name: SystemTimer
209
222
  requirement: !ruby/object:Gem::Requirement
210
- none: false
211
223
  requirements:
212
224
  - - ! '>='
213
225
  - !ruby/object:Gem::Version
@@ -215,7 +227,6 @@ dependencies:
215
227
  type: :development
216
228
  prerelease: false
217
229
  version_requirements: !ruby/object:Gem::Requirement
218
- none: false
219
230
  requirements:
220
231
  - - ! '>='
221
232
  - !ruby/object:Gem::Version
@@ -229,13 +240,13 @@ extra_rdoc_files:
229
240
  - README.md
230
241
  files:
231
242
  - .document
232
- - CacheBar.gemspec
233
243
  - Gemfile
234
244
  - HISTORY
235
245
  - LICENSE.txt
236
246
  - README.md
237
247
  - Rakefile
238
248
  - VERSION
249
+ - cachebar.gemspec
239
250
  - lib/cachebar.rb
240
251
  - lib/httparty/httpcache.rb
241
252
  - test/fixtures/user_timeline.json
@@ -249,29 +260,25 @@ files:
249
260
  homepage: http://github.com/vigetlabs/cachebar
250
261
  licenses:
251
262
  - MIT
263
+ metadata: {}
252
264
  post_install_message:
253
265
  rdoc_options: []
254
266
  require_paths:
255
267
  - lib
256
268
  required_ruby_version: !ruby/object:Gem::Requirement
257
- none: false
258
269
  requirements:
259
270
  - - ! '>='
260
271
  - !ruby/object:Gem::Version
261
272
  version: '0'
262
- segments:
263
- - 0
264
- hash: -4078844821069531998
265
273
  required_rubygems_version: !ruby/object:Gem::Requirement
266
- none: false
267
274
  requirements:
268
275
  - - ! '>='
269
276
  - !ruby/object:Gem::Version
270
277
  version: '0'
271
278
  requirements: []
272
279
  rubyforge_project:
273
- rubygems_version: 1.8.21
280
+ rubygems_version: 2.4.1
274
281
  signing_key:
275
- specification_version: 3
282
+ specification_version: 4
276
283
  summary: A simple API caching layer built on top of HTTParty and Redis
277
284
  test_files: []