basiccache 0.0.29 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/LICENSE +1 -1
- data/README.md +115 -53
- data/basiccache.gemspec +1 -1
- data/lib/basiccache.rb +0 -1
- data/lib/caches/cache.rb +0 -2
- data/lib/caches/timecache.rb +0 -2
- data/lib/methodcacher.rb +0 -1
- data/lib/stores/store.rb +0 -1
- data/spec/methodcacher_spec.rb +0 -1
- metadata +22 -49
- data/Gemfile.lock +0 -69
- data/vendor/cache/ast-1.1.0.gem +0 -0
- data/vendor/cache/coveralls-0.7.0.gem +0 -0
- data/vendor/cache/diff-lcs-1.2.5.gem +0 -0
- data/vendor/cache/docile-1.1.1.gem +0 -0
- data/vendor/cache/fuubar-1.3.2.gem +0 -0
- data/vendor/cache/hashr-0.0.22.gem +0 -0
- data/vendor/cache/mime-types-2.0.gem +0 -0
- data/vendor/cache/multi_json-1.8.2.gem +0 -0
- data/vendor/cache/parser-2.1.1.gem +0 -0
- data/vendor/cache/powerpack-0.0.9.gem +0 -0
- data/vendor/cache/rainbow-1.99.1.gem +0 -0
- data/vendor/cache/rake-10.1.1.gem +0 -0
- data/vendor/cache/rest-client-1.6.7.gem +0 -0
- data/vendor/cache/rspec-2.14.1.gem +0 -0
- data/vendor/cache/rspec-core-2.14.7.gem +0 -0
- data/vendor/cache/rspec-expectations-2.14.4.gem +0 -0
- data/vendor/cache/rspec-mocks-2.14.4.gem +0 -0
- data/vendor/cache/rubocop-0.16.0.gem +0 -0
- data/vendor/cache/ruby-progressbar-1.4.0.gem +0 -0
- data/vendor/cache/simplecov-0.8.2.gem +0 -0
- data/vendor/cache/simplecov-html-0.8.0.gem +0 -0
- data/vendor/cache/slop-3.4.7.gem +0 -0
- data/vendor/cache/term-ansicolor-1.2.2.gem +0 -0
- data/vendor/cache/thor-0.18.1.gem +0 -0
- data/vendor/cache/tins-0.13.1.gem +0 -0
- data/vendor/cache/travis-lint-1.7.0.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a49be3db84d2126fa39a6836c55ec560f0a3db8
|
4
|
+
data.tar.gz: 6b3a772fcd807e71442f17b790f951fa96ac78da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cd94168231bcf330a6f5c878b05da48181b0df67287640eadfe7ba9b22b9437b405b480f5f64864f1e083c61d98531fa3fa92013079647f900199d63c8fc8b2
|
7
|
+
data.tar.gz: 13554660770b5dd53d1c4d30be3fb7f83a81cd077f63a77c64282bec33259b12b27478e3e88cf366f68aeef83c5e725a1feae21e0ce6624ed0ef9e82be363752
|
data/.gitignore
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,35 @@
|
|
1
1
|
BasicCache
|
2
2
|
========
|
3
3
|
|
4
|
-
[![Gem Version](https://
|
5
|
-
[![Dependency Status](https://
|
6
|
-
[![Code Climate](https://
|
7
|
-
[![Coverage Status](https://
|
8
|
-
[![Build Status](https://
|
4
|
+
[![Gem Version](https://img.shields.io/gem/v/basiccache.svg)](https://rubygems.org/gems/basiccache)
|
5
|
+
[![Dependency Status](https://img.shields.io/gemnasium/akerl/basiccache.svg)](https://gemnasium.com/akerl/basiccache)
|
6
|
+
[![Code Climate](https://img.shields.io/codeclimate/github/akerl/basiccache.svg)](https://codeclimate.com/github/akerl/basiccache)
|
7
|
+
[![Coverage Status](https://img.shields.io/coveralls/akerl/basiccache.svg)](https://coveralls.io/r/akerl/basiccache)
|
8
|
+
[![Build Status](https://img.shields.io/travis/akerl/basiccache.svg)](https://travis-ci.org/akerl/basiccache)
|
9
|
+
[![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://tldrlegal.com/license/mit-license)
|
9
10
|
|
10
11
|
Provides a minimal key/value caching layer
|
11
12
|
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
gem install basiccache
|
16
|
+
|
12
17
|
## Usage
|
13
18
|
|
14
|
-
|
19
|
+
BasicCache utilizes two different components to cache data:
|
20
|
+
* Stores, which are backends for holding keys and values
|
21
|
+
* Caches, which handle expiration logic
|
22
|
+
|
23
|
+
You can create a new default cache object using `BasicCache.new`:
|
15
24
|
|
16
25
|
```
|
17
26
|
require 'basiccache'
|
18
27
|
my_cache = BasicCache.new
|
19
28
|
```
|
20
29
|
|
21
|
-
|
30
|
+
This uses the default Store and Cache object. The default Store is a Ruby hash, and the default Cache does not perform any automatic expiration of keys.
|
31
|
+
|
32
|
+
To store things in the cache and retrieve them, use `my_cache.cache` with a code block. When provided no argument, it will infer a key name using the calling method's name. If the key is stored, it will return it. If no key is stored, it will run the computation, store the result, and return it.
|
22
33
|
|
23
34
|
```
|
24
35
|
require 'basiccache'
|
@@ -27,34 +38,103 @@ require 'benchmark'
|
|
27
38
|
my_cache = BasicCache.new
|
28
39
|
|
29
40
|
3.times do
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
41
|
+
puts Benchmark.measure {
|
42
|
+
my_cache.cache('foo') do
|
43
|
+
(1..50_000).reduce { |acc, i| acc*i }
|
44
|
+
end
|
45
|
+
}
|
35
46
|
end
|
36
47
|
```
|
37
48
|
|
38
49
|
Results:
|
39
50
|
|
40
51
|
```
|
41
|
-
|
42
|
-
|
43
|
-
0.000000 0.000000 0.000000 ( 0.
|
44
|
-
0.000000 0.000000 0.000000 ( 0.000005)
|
52
|
+
1.730000 0.020000 1.750000 ( 1.752766)
|
53
|
+
0.000000 0.000000 0.000000 ( 0.000014)
|
54
|
+
0.000000 0.000000 0.000000 ( 0.000008)
|
45
55
|
```
|
46
56
|
|
47
|
-
To clear the cache, call
|
57
|
+
To clear the cache, call `.clear!`. Calling `.clear!(key)` will remove only that key:
|
48
58
|
|
49
59
|
```
|
60
|
+
require 'basiccache'
|
61
|
+
|
50
62
|
my_cache = BasicCache.new
|
51
63
|
|
52
|
-
|
64
|
+
(1..10).each { |i| my_cache.cache(i) { i+10 } }
|
65
|
+
|
66
|
+
puts my_cache.size
|
67
|
+
|
68
|
+
my_cache.clear! 3
|
69
|
+
puts my_cache.size
|
53
70
|
|
54
71
|
my_cache.clear!
|
72
|
+
puts my_cache.size
|
73
|
+
```
|
74
|
+
|
75
|
+
Results:
|
76
|
+
|
77
|
+
```
|
78
|
+
10
|
79
|
+
9
|
80
|
+
0
|
81
|
+
```
|
82
|
+
|
83
|
+
### Important Note About Keys
|
84
|
+
|
85
|
+
BasicCache attempts to guess the key name from the stack by looking for the name of the method that called it. This is convenient for most use cases, but if you're using metaprogramming or nested code blocks, this can cause that method name to be "block (2 levels) in \<top (required)>" or similar. In this case, keys can conflict and give back weird results. The fix is for you to manually specify your own keys to .cache calls.
|
86
|
+
|
87
|
+
### Using other Caches
|
88
|
+
|
89
|
+
In addition to the default Cache object, BasicCache also provides TimeCache, which expires keys after a given lifetime. It can be created similarly to the default Cache, and used identically. The lifetime can be provided, or the default of 60 seconds is used.
|
90
|
+
|
91
|
+
```
|
92
|
+
require 'basiccache'
|
93
|
+
|
94
|
+
my_cache = BasicCache::TimeCache.new(lifetime: 3)
|
95
|
+
|
96
|
+
my_cache.cache('foo') { (1..50_000).reduce { |acc, i| acc*i } }
|
97
|
+
|
98
|
+
puts my_cache.size
|
99
|
+
sleep 5
|
100
|
+
puts my_cache.size
|
101
|
+
```
|
102
|
+
|
103
|
+
Results:
|
104
|
+
|
105
|
+
```
|
106
|
+
1
|
107
|
+
0
|
55
108
|
```
|
56
109
|
|
57
|
-
|
110
|
+
### Using other Stores
|
111
|
+
|
112
|
+
Store backends can be provided to a Cache object when it is created via the `:store` parameter. BasicCache implements only the default Store, but [RedisStore](https://github.com/akerl/redisstore) is an example of an alternate Store class.
|
113
|
+
|
114
|
+
```
|
115
|
+
require 'basiccache'
|
116
|
+
require 'redisstore'
|
117
|
+
require 'benchmark'
|
118
|
+
|
119
|
+
my_store = RedisStore.new
|
120
|
+
my_cache = BasicCache.new(store: my_store)
|
121
|
+
|
122
|
+
3.times do
|
123
|
+
puts Benchmark.measure {
|
124
|
+
my_cache.cache('bar') do
|
125
|
+
(1..50_000).reduce { |acc, i| acc*i }
|
126
|
+
end
|
127
|
+
}
|
128
|
+
end
|
129
|
+
```
|
130
|
+
|
131
|
+
Results:
|
132
|
+
|
133
|
+
```
|
134
|
+
0.000000 0.000000 0.000000 ( 0.001434)
|
135
|
+
0.000000 0.000000 0.000000 ( 0.000294)
|
136
|
+
0.000000 0.000000 0.000000 ( 0.000207)
|
137
|
+
```
|
58
138
|
|
59
139
|
### MethodCacher
|
60
140
|
|
@@ -104,43 +184,25 @@ class Foo
|
|
104
184
|
end
|
105
185
|
```
|
106
186
|
|
107
|
-
##
|
108
|
-
|
109
|
-
### TimeCache
|
110
|
-
|
111
|
-
This cache behaves similarly, with the addition of a lifetime attribute.
|
112
|
-
|
113
|
-
When creating a new cache object, provide a lifetime or use the default of 30 seconds:
|
114
|
-
|
115
|
-
```
|
116
|
-
default_cache = BasicCache::TimeCache.new
|
117
|
-
puts "Default Lifetime: #{default_cache.lifetime}"
|
118
|
-
|
119
|
-
custom_cache = BasicCache::TimeCache.new(3)
|
120
|
-
puts "Default Lifetime: #{custom_cache.lifetime}"
|
121
|
-
|
122
|
-
custom_cache.cache('test') { "fish" }
|
123
|
-
puts "Does the cache include 'test'? #{custom_cache.include? 'test'}"
|
124
|
-
sleep 5
|
125
|
-
puts "Does the cache include 'test' now? #{custom_cache.include? 'test'}"
|
126
|
-
```
|
127
|
-
|
128
|
-
This returns the following:
|
129
|
-
|
130
|
-
```
|
131
|
-
Default Lifetime: 30
|
132
|
-
Default Lifetime: 3
|
133
|
-
Does the cache include 'test'? true
|
134
|
-
Does the cache include 'test' now? false
|
135
|
-
```
|
136
|
-
|
137
|
-
## Important Note About Keys
|
187
|
+
## Extending BasicCache
|
138
188
|
|
139
|
-
|
189
|
+
Creating your own Cache or Store is pretty simple. These are the required methods that each needs to provide:
|
140
190
|
|
141
|
-
|
191
|
+
Cache:
|
192
|
+
* `.size()` -> Size of the cache as an integer. Expired/invalid keys should not count towards this.
|
193
|
+
* `.cache(key = nil, &block)` -> If key exists, return stored value; if not, run block, store value, and return it. If no key is provided, use BasicCache.caller_name to infer one.
|
194
|
+
* `.include?(key = nil)` -> Return boolean indicating presence of key in Cache. Expired/invalid keys should return false. If no key is provided, use BasicCache.caller_name to infer one.
|
195
|
+
* `.[](key)` -> Return value if key is cached, else return KeyError
|
196
|
+
* `.clear!(key = nil)` -> With no key, clear the whole cache and return {}. With a key, clear that key and return the value it had.
|
197
|
+
* `.prune()` -> Prune expired/invalid keys from the store. Return any pruned keys.
|
142
198
|
|
143
|
-
|
199
|
+
Store:
|
200
|
+
* `.clear!(key = nil)` -> With no key, clear the whole cache and return {}. With a key, clear that key and return the value it had.
|
201
|
+
* `.[](key)` -> Return the value stored for the given key if it exists, else return KeyError.
|
202
|
+
* `.[]=(key, value)` -> Store the given value with the given key, and return the value.
|
203
|
+
* `.size()` -> Return the size of the store as an integer.
|
204
|
+
* `.include?(key)` -> Return a boolean indicating presence of the given key in the store.
|
205
|
+
* `.keys()` -> Return all keys in the store as an array.
|
144
206
|
|
145
207
|
## License
|
146
208
|
|
data/basiccache.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'basiccache'
|
3
|
-
s.version = '0.0
|
3
|
+
s.version = '0.1.0'
|
4
4
|
s.date = Time.now.strftime("%Y-%m-%d")
|
5
5
|
s.summary = 'Provides a minimal key/value caching layer'
|
6
6
|
s.description = "Allows an application to dynamically cache values and retrieve them later"
|
data/lib/basiccache.rb
CHANGED
data/lib/caches/cache.rb
CHANGED
data/lib/caches/timecache.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
##
|
2
2
|
# Extends BasicCache to add a time-based cache
|
3
|
-
|
4
3
|
module BasicCache
|
5
4
|
##
|
6
5
|
# Timecache item struct, timestamp and value
|
@@ -9,7 +8,6 @@ module BasicCache
|
|
9
8
|
|
10
9
|
##
|
11
10
|
# Time-based cache object
|
12
|
-
|
13
11
|
class TimeCache < Cache
|
14
12
|
attr_reader :lifetime
|
15
13
|
|
data/lib/methodcacher.rb
CHANGED
data/lib/stores/store.rb
CHANGED
data/spec/methodcacher_spec.rb
CHANGED
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basiccache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: travis-lint
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: coveralls
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: fuubar
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: parser
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
description: Allows an application to dynamically cache values and retrieve them later
|
@@ -114,12 +114,11 @@ executables: []
|
|
114
114
|
extensions: []
|
115
115
|
extra_rdoc_files: []
|
116
116
|
files:
|
117
|
-
- .gitignore
|
118
|
-
- .rspec
|
119
|
-
- .rubocop.yml
|
120
|
-
- .travis.yml
|
117
|
+
- ".gitignore"
|
118
|
+
- ".rspec"
|
119
|
+
- ".rubocop.yml"
|
120
|
+
- ".travis.yml"
|
121
121
|
- Gemfile
|
122
|
-
- Gemfile.lock
|
123
122
|
- LICENSE
|
124
123
|
- README.md
|
125
124
|
- Rakefile
|
@@ -135,32 +134,6 @@ files:
|
|
135
134
|
- spec/methodcacher_spec.rb
|
136
135
|
- spec/spec_helper.rb
|
137
136
|
- spec/stores/store_spec.rb
|
138
|
-
- vendor/cache/ast-1.1.0.gem
|
139
|
-
- vendor/cache/coveralls-0.7.0.gem
|
140
|
-
- vendor/cache/diff-lcs-1.2.5.gem
|
141
|
-
- vendor/cache/docile-1.1.1.gem
|
142
|
-
- vendor/cache/fuubar-1.3.2.gem
|
143
|
-
- vendor/cache/hashr-0.0.22.gem
|
144
|
-
- vendor/cache/mime-types-2.0.gem
|
145
|
-
- vendor/cache/multi_json-1.8.2.gem
|
146
|
-
- vendor/cache/parser-2.1.1.gem
|
147
|
-
- vendor/cache/powerpack-0.0.9.gem
|
148
|
-
- vendor/cache/rainbow-1.99.1.gem
|
149
|
-
- vendor/cache/rake-10.1.1.gem
|
150
|
-
- vendor/cache/rest-client-1.6.7.gem
|
151
|
-
- vendor/cache/rspec-2.14.1.gem
|
152
|
-
- vendor/cache/rspec-core-2.14.7.gem
|
153
|
-
- vendor/cache/rspec-expectations-2.14.4.gem
|
154
|
-
- vendor/cache/rspec-mocks-2.14.4.gem
|
155
|
-
- vendor/cache/rubocop-0.16.0.gem
|
156
|
-
- vendor/cache/ruby-progressbar-1.4.0.gem
|
157
|
-
- vendor/cache/simplecov-0.8.2.gem
|
158
|
-
- vendor/cache/simplecov-html-0.8.0.gem
|
159
|
-
- vendor/cache/slop-3.4.7.gem
|
160
|
-
- vendor/cache/term-ansicolor-1.2.2.gem
|
161
|
-
- vendor/cache/thor-0.18.1.gem
|
162
|
-
- vendor/cache/tins-0.13.1.gem
|
163
|
-
- vendor/cache/travis-lint-1.7.0.gem
|
164
137
|
homepage: https://github.com/akerl/basiccache
|
165
138
|
licenses:
|
166
139
|
- MIT
|
@@ -171,12 +144,12 @@ require_paths:
|
|
171
144
|
- lib
|
172
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
146
|
requirements:
|
174
|
-
- -
|
147
|
+
- - ">="
|
175
148
|
- !ruby/object:Gem::Version
|
176
149
|
version: '0'
|
177
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
151
|
requirements:
|
179
|
-
- -
|
152
|
+
- - ">="
|
180
153
|
- !ruby/object:Gem::Version
|
181
154
|
version: '0'
|
182
155
|
requirements: []
|
data/Gemfile.lock
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
basiccache (0.0.29)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
ast (1.1.0)
|
10
|
-
coveralls (0.7.0)
|
11
|
-
multi_json (~> 1.3)
|
12
|
-
rest-client
|
13
|
-
simplecov (>= 0.7)
|
14
|
-
term-ansicolor
|
15
|
-
thor
|
16
|
-
diff-lcs (1.2.5)
|
17
|
-
docile (1.1.1)
|
18
|
-
fuubar (1.3.2)
|
19
|
-
rspec (>= 2.14.0, < 3.1.0)
|
20
|
-
ruby-progressbar (~> 1.3)
|
21
|
-
hashr (0.0.22)
|
22
|
-
mime-types (2.0)
|
23
|
-
multi_json (1.8.2)
|
24
|
-
parser (2.1.1)
|
25
|
-
ast (~> 1.1)
|
26
|
-
slop (~> 3.4, >= 3.4.5)
|
27
|
-
powerpack (0.0.9)
|
28
|
-
rainbow (1.99.1)
|
29
|
-
rake (10.1.1)
|
30
|
-
rest-client (1.6.7)
|
31
|
-
mime-types (>= 1.16)
|
32
|
-
rspec (2.14.1)
|
33
|
-
rspec-core (~> 2.14.0)
|
34
|
-
rspec-expectations (~> 2.14.0)
|
35
|
-
rspec-mocks (~> 2.14.0)
|
36
|
-
rspec-core (2.14.7)
|
37
|
-
rspec-expectations (2.14.4)
|
38
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
39
|
-
rspec-mocks (2.14.4)
|
40
|
-
rubocop (0.16.0)
|
41
|
-
parser (~> 2.1)
|
42
|
-
powerpack (~> 0.0.6)
|
43
|
-
rainbow (>= 1.1.4)
|
44
|
-
ruby-progressbar (1.4.0)
|
45
|
-
simplecov (0.8.2)
|
46
|
-
docile (~> 1.1.0)
|
47
|
-
multi_json
|
48
|
-
simplecov-html (~> 0.8.0)
|
49
|
-
simplecov-html (0.8.0)
|
50
|
-
slop (3.4.7)
|
51
|
-
term-ansicolor (1.2.2)
|
52
|
-
tins (~> 0.8)
|
53
|
-
thor (0.18.1)
|
54
|
-
tins (0.13.1)
|
55
|
-
travis-lint (1.7.0)
|
56
|
-
hashr (~> 0.0.22)
|
57
|
-
|
58
|
-
PLATFORMS
|
59
|
-
ruby
|
60
|
-
|
61
|
-
DEPENDENCIES
|
62
|
-
basiccache!
|
63
|
-
coveralls
|
64
|
-
fuubar
|
65
|
-
parser
|
66
|
-
rake
|
67
|
-
rspec
|
68
|
-
rubocop
|
69
|
-
travis-lint
|
data/vendor/cache/ast-1.1.0.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/slop-3.4.7.gem
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|