apache_secure_download 0.0.2.213 → 0.0.3.217

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/ChangeLog CHANGED
@@ -1,5 +1,11 @@
1
1
  = Revision history for apache_secure_download
2
2
 
3
+ == 0.0.3 [2008-02-25]
4
+
5
+ * Apache::SecureDownload::Util.secure_url
6
+ ** also takes a hash with options instead of explicit expiration time
7
+ ** can create cacheable URLs by setting the <tt>:cache</tt> option
8
+
3
9
  == 0.0.2 [2008-02-20]
4
10
 
5
11
  * Added helper module Apache::SecureDownload::Util
data/README CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == VERSION
4
4
 
5
- This documentation refers to apache_secure_download version 0.0.2
5
+ This documentation refers to apache_secure_download version 0.0.3
6
6
 
7
7
 
8
8
  == DESCRIPTION
@@ -32,6 +32,12 @@ And create links to your resources with timestamp and token:
32
32
  # or simply use the provided helper:
33
33
  url = Apache::SecureDownload::Util.secure_url("secret", path, 1.minute.from_now)
34
34
 
35
+ # make resulting URL cacheable for 30 seconds (on average):
36
+ url = Apache::SecureDownload::Util.secure_url("secret", path, :expires => 1.minute.from_now, :cache => 30)
37
+
38
+ # specify expiration time using an offset (results in Time.now + 60; also includes caching for 60 seconds):
39
+ url = Apache::SecureDownload::Util.secure_url("secret", path, :offset => 60)
40
+
35
41
 
36
42
  == AUTHORS
37
43
 
@@ -41,11 +41,20 @@ module Apache
41
41
  Digest::SHA1.hexdigest(secret + path + timestamp.to_s)
42
42
  end
43
43
 
44
- def secure_url(secret, url, timestamp = Time.now + 60)
44
+ def secure_url(secret, url, expires = Time.now + 60)
45
45
  path, _, query = URI.split(url)[5..7]
46
46
  path << '?' << query if query
47
47
 
48
- timestamp = timestamp.to_i
48
+ if expires.is_a?(Hash)
49
+ timestamp = (expires[:expires] || Time.now + (expires[:offset] ||= 60)).to_i
50
+
51
+ unless expires[:cache] == false || (cache = expires[:cache] || expires[:offset]).zero?
52
+ # makes the URL cacheable for +cache+ seconds *on average*
53
+ timestamp = ((timestamp / cache.to_f).round + 1) * cache.to_i
54
+ end
55
+ else
56
+ timestamp = expires.to_i
57
+ end
49
58
 
50
59
  url + "#{query ? '&' : '?'}timestamp=#{timestamp}&token=#{token(secret, path, timestamp)}"
51
60
  end
@@ -6,7 +6,7 @@ module Apache
6
6
 
7
7
  MAJOR = 0
8
8
  MINOR = 0
9
- TINY = 2
9
+ TINY = 3
10
10
 
11
11
  class << self
12
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apache_secure_download
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.213
4
+ version: 0.0.3.217
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Wille
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-20 00:00:00 +01:00
12
+ date: 2008-02-25 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15