defog 0.7.2 → 0.8.0
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.
- data/README.md +22 -7
- data/lib/defog/handle.rb +1 -1
- data/lib/defog/version.rb +1 -1
- data/spec/handle_spec.rb +15 -0
- metadata +2 -2
data/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# defog
|
|
2
2
|
|
|
3
3
|
[<img
|
|
4
|
-
src="https://secure.travis-ci.org/ronen/defog.png"/>](http://travis-ci.org/
|
|
5
|
-
en/defog) [<img src="https://gemnasium.com/ronen/defog.png" alt="Dependency
|
|
4
|
+
src="https://secure.travis-ci.org/ronen/defog.png"/>](http://travis-ci.org/ronen/defog) [<img src="https://gemnasium.com/ronen/defog.png" alt="Dependency
|
|
6
5
|
Status" />](https://gemnasium.com/ronen/defog)
|
|
7
6
|
|
|
8
7
|
Defog wraps the [fog](https://rubygems.org/gems/fog) gem (specifically,
|
|
@@ -205,6 +204,20 @@ And it's fair game to delete proxy files outside of Defog, such as via a cron
|
|
|
205
204
|
job. Of course in these cases it's up to you to make sure not to
|
|
206
205
|
unintentionally delete a proxy file that's currently open.
|
|
207
206
|
|
|
207
|
+
### Multiple Defog proxies, prefix, and cache sharing.
|
|
208
|
+
|
|
209
|
+
Sometimes you may want to have multiple Defog proxies, each scoped to a
|
|
210
|
+
different "subdirectory" of a cloud storage location -- but all of them sharing a single cache in order to limit the max cache size across them all).
|
|
211
|
+
|
|
212
|
+
That works OK out of the box (as of v0.8.0): the default `proxy_root` is created without regard for the `prefix` -- but the `proxy_path` for files within the cache does include the prefix. So it's safe to create multiple defog proxies that differ only in `prefix`, and they will share the cache without colliding with each other.
|
|
213
|
+
|
|
214
|
+
Notes:
|
|
215
|
+
|
|
216
|
+
* Each defog proxy will manage the entire cache based on its own `max_cache_size` setting. So presumably you would pass the same `max_cache_size` to each.
|
|
217
|
+
|
|
218
|
+
* Best to avoid multithreading though, as there's no locking around the cache management. So in principle one thread could delete a proxy that another thread is using.
|
|
219
|
+
|
|
220
|
+
|
|
208
221
|
## Accessing Fog
|
|
209
222
|
|
|
210
223
|
You can access the underlying fog objects as needed:
|
|
@@ -218,6 +231,7 @@ You can access the underlying fog objects as needed:
|
|
|
218
231
|
## Installation
|
|
219
232
|
|
|
220
233
|
Gemfile:
|
|
234
|
+
|
|
221
235
|
gem 'defog'
|
|
222
236
|
|
|
223
237
|
## Compatibility
|
|
@@ -237,11 +251,12 @@ plus appropriate rspec examples.)
|
|
|
237
251
|
|
|
238
252
|
Release Notes:
|
|
239
253
|
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
254
|
+
* 0.8.0 - Include prefix in proxy_path (thus allowing cache sharing)
|
|
255
|
+
* 0.7.2 - Bug fix: don't fail when clearing cache if another process clears it first
|
|
256
|
+
* 0.7.1 - Add key info to message if there's an exception when getting file
|
|
257
|
+
* 0.7.0 - Add :query option to Handle#url
|
|
258
|
+
* 0.6.1 - Bug fix (caching)
|
|
259
|
+
* 0.6.0 - Add logging
|
|
245
260
|
|
|
246
261
|
|
|
247
262
|
## Copyright
|
data/lib/defog/handle.rb
CHANGED
|
@@ -32,7 +32,7 @@ module Defog
|
|
|
32
32
|
def initialize(proxy, key) #:nodoc:
|
|
33
33
|
@proxy = proxy
|
|
34
34
|
@key = key
|
|
35
|
-
@proxy_path = Pathname.new("#{@proxy.proxy_root}/#{@key}").expand_path
|
|
35
|
+
@proxy_path = Pathname.new("#{@proxy.proxy_root}/#{@proxy.prefix}#{@key}").expand_path
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def to_s
|
data/lib/defog/version.rb
CHANGED
data/spec/handle_spec.rb
CHANGED
|
@@ -14,6 +14,21 @@ shared_examples "a handle" do |proxyargs|
|
|
|
14
14
|
@handle.to_s.should include key
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
context "proxy path" do
|
|
18
|
+
it "should start with proxy root" do
|
|
19
|
+
@handle.proxy_path.to_s.should start_with(@proxy.proxy_root.to_s)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should end with key" do
|
|
23
|
+
@handle.proxy_path.to_s.should end_with(key)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should include prefix" do
|
|
27
|
+
prefix = "IAmAPrefix"
|
|
28
|
+
Defog::Proxy.new(proxyargs.merge(:prefix => prefix)).file(key).proxy_path.to_s.should include(prefix.to_s)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
17
32
|
it "should report exist? true if remote cloud file exists" do
|
|
18
33
|
create_remote("i exist")
|
|
19
34
|
@handle.should be_exist
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: defog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: fog
|