josh-rack-cache 0.5.1

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.
@@ -0,0 +1,94 @@
1
+ require "#{File.dirname(__FILE__)}/spec_setup"
2
+ require 'rack/cache/storage'
3
+
4
+ describe 'Rack::Cache::Storage' do
5
+ before do
6
+ @storage = Rack::Cache::Storage.new
7
+ end
8
+
9
+ it "fails when an unknown URI scheme is provided" do
10
+ lambda { @storage.resolve_metastore_uri('foo:/') }.should.raise
11
+ end
12
+ it "creates a new MetaStore for URI if none exists" do
13
+ @storage.resolve_metastore_uri('heap:/').
14
+ should.be.kind_of Rack::Cache::MetaStore
15
+ end
16
+ it "returns an existing MetaStore instance for URI that exists" do
17
+ store = @storage.resolve_metastore_uri('heap:/')
18
+ @storage.resolve_metastore_uri('heap:/').should.be store
19
+ end
20
+ it "creates a new EntityStore for URI if none exists" do
21
+ @storage.resolve_entitystore_uri('heap:/').
22
+ should.be.kind_of Rack::Cache::EntityStore
23
+ end
24
+ it "returns an existing EntityStore instance for URI that exists" do
25
+ store = @storage.resolve_entitystore_uri('heap:/')
26
+ @storage.resolve_entitystore_uri('heap:/').should.be store
27
+ end
28
+ it "clears all URI -> store mappings with #clear" do
29
+ meta = @storage.resolve_metastore_uri('heap:/')
30
+ entity = @storage.resolve_entitystore_uri('heap:/')
31
+ @storage.clear
32
+ @storage.resolve_metastore_uri('heap:/').should.not.be meta
33
+ @storage.resolve_entitystore_uri('heap:/').should.not.be entity
34
+ end
35
+
36
+ describe 'Heap Store URIs' do
37
+ %w[heap:/ mem:/].each do |uri|
38
+ it "resolves #{uri} meta store URIs" do
39
+ @storage.resolve_metastore_uri(uri).
40
+ should.be.kind_of Rack::Cache::MetaStore
41
+ end
42
+ it "resolves #{uri} entity store URIs" do
43
+ @storage.resolve_entitystore_uri(uri).
44
+ should.be.kind_of Rack::Cache::EntityStore
45
+ end
46
+ end
47
+ end
48
+
49
+ describe 'Disk Store URIs' do
50
+ before do
51
+ @temp_dir = create_temp_directory
52
+ end
53
+ after do
54
+ remove_entry_secure @temp_dir
55
+ @temp_dir = nil
56
+ end
57
+
58
+ %w[file: disk:].each do |uri|
59
+ it "resolves #{uri} meta store URIs" do
60
+ @storage.resolve_metastore_uri(uri + @temp_dir).
61
+ should.be.kind_of Rack::Cache::MetaStore
62
+ end
63
+ it "resolves #{uri} entity store URIs" do
64
+ @storage.resolve_entitystore_uri(uri + @temp_dir).
65
+ should.be.kind_of Rack::Cache::EntityStore
66
+ end
67
+ end
68
+ end
69
+
70
+ if have_memcached?
71
+
72
+ describe 'MemCache Store URIs' do
73
+ %w[memcache: memcached:].each do |scheme|
74
+ it "resolves #{scheme} meta store URIs" do
75
+ uri = scheme + '//' + ENV['MEMCACHED']
76
+ @storage.resolve_metastore_uri(uri).
77
+ should.be.kind_of Rack::Cache::MetaStore
78
+ end
79
+ it "resolves #{scheme} entity store URIs" do
80
+ uri = scheme + '//' + ENV['MEMCACHED']
81
+ @storage.resolve_entitystore_uri(uri).
82
+ should.be.kind_of Rack::Cache::EntityStore
83
+ end
84
+ end
85
+ it 'supports namespaces in memcached: URIs' do
86
+ uri = "memcached://" + ENV['MEMCACHED'] + "/namespace"
87
+ @storage.resolve_metastore_uri(uri).
88
+ should.be.kind_of Rack::Cache::MetaStore
89
+ end
90
+ end
91
+
92
+ end
93
+
94
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: josh-rack-cache
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Tomayko
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-06 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.4"
24
+ version:
25
+ description: HTTP Caching for Rack
26
+ email: r@tomayko.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README
33
+ - COPYING
34
+ - TODO
35
+ - CHANGES
36
+ files:
37
+ - CHANGES
38
+ - COPYING
39
+ - README
40
+ - Rakefile
41
+ - TODO
42
+ - doc/configuration.markdown
43
+ - doc/faq.markdown
44
+ - doc/index.markdown
45
+ - doc/layout.html.erb
46
+ - doc/license.markdown
47
+ - doc/rack-cache.css
48
+ - doc/server.ru
49
+ - doc/storage.markdown
50
+ - example/sinatra/app.rb
51
+ - example/sinatra/views/index.erb
52
+ - lib/rack/cache.rb
53
+ - lib/rack/cache/appengine.rb
54
+ - lib/rack/cache/cachecontrol.rb
55
+ - lib/rack/cache/context.rb
56
+ - lib/rack/cache/entitystore.rb
57
+ - lib/rack/cache/key.rb
58
+ - lib/rack/cache/metastore.rb
59
+ - lib/rack/cache/options.rb
60
+ - lib/rack/cache/request.rb
61
+ - lib/rack/cache/response.rb
62
+ - lib/rack/cache/storage.rb
63
+ - rack-cache.gemspec
64
+ - test/cache_test.rb
65
+ - test/cachecontrol_test.rb
66
+ - test/context_test.rb
67
+ - test/entitystore_test.rb
68
+ - test/key_test.rb
69
+ - test/metastore_test.rb
70
+ - test/options_test.rb
71
+ - test/pony.jpg
72
+ - test/request_test.rb
73
+ - test/response_test.rb
74
+ - test/spec_setup.rb
75
+ - test/storage_test.rb
76
+ has_rdoc: true
77
+ homepage: http://tomayko.com/src/rack-cache/
78
+ licenses:
79
+ post_install_message:
80
+ rdoc_options:
81
+ - --line-numbers
82
+ - --inline-source
83
+ - --title
84
+ - Rack::Cache
85
+ - --main
86
+ - Rack::Cache
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ version:
101
+ requirements: []
102
+
103
+ rubyforge_project: wink
104
+ rubygems_version: 1.3.5
105
+ signing_key:
106
+ specification_version: 2
107
+ summary: HTTP Caching for Rack
108
+ test_files:
109
+ - test/cache_test.rb
110
+ - test/cachecontrol_test.rb
111
+ - test/context_test.rb
112
+ - test/entitystore_test.rb
113
+ - test/key_test.rb
114
+ - test/metastore_test.rb
115
+ - test/options_test.rb
116
+ - test/request_test.rb
117
+ - test/response_test.rb
118
+ - test/storage_test.rb