paul-resourceful 0.5.0 → 0.5.3
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/Manifest +22 -23
- data/Rakefile +2 -2
- data/lib/resourceful/authentication_manager.rb +1 -1
- data/lib/resourceful/cache_manager.rb +8 -9
- data/lib/resourceful/memcache_cache_manager.rb +4 -4
- data/lib/resourceful/request.rb +1 -2
- data/lib/resourceful/response.rb +3 -4
- data/lib/resourceful.rb +1 -1
- data/resourceful.gemspec +7 -13
- data/spec/acceptance/caching_spec.rb +3 -2
- data/spec/simple_sinatra_server.rb +2 -1
- data/spec/simple_sinatra_server_spec.rb +1 -1
- metadata +38 -58
data/Manifest
CHANGED
@@ -1,30 +1,29 @@
|
|
1
|
-
|
2
|
-
spec/spec.opts
|
3
|
-
spec/simple_sinatra_server_spec.rb
|
4
|
-
spec/simple_sinatra_server.rb
|
5
|
-
spec/acceptance/header_spec.rb
|
6
|
-
spec/acceptance/caching_spec.rb
|
7
|
-
spec/acceptance/resource_spec.rb
|
8
|
-
spec/acceptance/redirecting_spec.rb
|
9
|
-
spec/acceptance/authorization_spec.rb
|
10
|
-
spec/acceptance_shared_specs.rb
|
11
|
-
spec/spec_helper.rb
|
12
|
-
spec/old_acceptance_specs.rb
|
13
|
-
README.markdown
|
14
|
-
resourceful.gemspec
|
15
|
-
lib/resourceful/cache_manager.rb
|
16
|
-
lib/resourceful/exceptions.rb
|
1
|
+
lib/resourceful.rb
|
17
2
|
lib/resourceful/net_http_adapter.rb
|
18
3
|
lib/resourceful/stubbed_resource_proxy.rb
|
19
4
|
lib/resourceful/header.rb
|
20
|
-
lib/resourceful/
|
21
|
-
lib/resourceful/request.rb
|
22
|
-
lib/resourceful/resource.rb
|
5
|
+
lib/resourceful/memcache_cache_manager.rb
|
23
6
|
lib/resourceful/response.rb
|
24
7
|
lib/resourceful/util.rb
|
25
|
-
lib/resourceful/http_accessor.rb
|
26
8
|
lib/resourceful/options_interpreter.rb
|
27
|
-
lib/resourceful/
|
28
|
-
lib/resourceful.rb
|
29
|
-
|
9
|
+
lib/resourceful/cache_manager.rb
|
10
|
+
lib/resourceful/request.rb
|
11
|
+
lib/resourceful/resource.rb
|
12
|
+
lib/resourceful/exceptions.rb
|
13
|
+
lib/resourceful/http_accessor.rb
|
14
|
+
lib/resourceful/authentication_manager.rb
|
15
|
+
README.markdown
|
30
16
|
MIT-LICENSE
|
17
|
+
Rakefile
|
18
|
+
Manifest
|
19
|
+
spec/simple_sinatra_server_spec.rb
|
20
|
+
spec/old_acceptance_specs.rb
|
21
|
+
spec/acceptance_shared_specs.rb
|
22
|
+
spec/spec_helper.rb
|
23
|
+
spec/simple_sinatra_server.rb
|
24
|
+
spec/acceptance/authorization_spec.rb
|
25
|
+
spec/acceptance/header_spec.rb
|
26
|
+
spec/acceptance/resource_spec.rb
|
27
|
+
spec/acceptance/caching_spec.rb
|
28
|
+
spec/acceptance/redirecting_spec.rb
|
29
|
+
spec/spec.opts
|
data/Rakefile
CHANGED
@@ -12,8 +12,8 @@ begin
|
|
12
12
|
p.email = "psadauskas@gmail.com"
|
13
13
|
|
14
14
|
p.ignore_pattern = ["pkg/*", "tmp/*"]
|
15
|
-
p.dependencies = ['addressable', 'httpauth'
|
16
|
-
p.development_dependencies = ['thin', 'yard', 'sinatra']
|
15
|
+
p.dependencies = ['addressable', 'httpauth']
|
16
|
+
p.development_dependencies = ['thin', 'yard', 'sinatra', 'rspec']
|
17
17
|
end
|
18
18
|
rescue LoadError => e
|
19
19
|
puts "install 'echoe' gem to be able to build the gem"
|
@@ -1,6 +1,4 @@
|
|
1
1
|
require 'resourceful/header'
|
2
|
-
require 'andand'
|
3
|
-
require 'facets/kernel/returning'
|
4
2
|
require 'digest/md5'
|
5
3
|
|
6
4
|
module Resourceful
|
@@ -72,9 +70,9 @@ module Resourceful
|
|
72
70
|
end
|
73
71
|
|
74
72
|
def lookup(request)
|
75
|
-
|
76
|
-
|
77
|
-
|
73
|
+
response = @collection[request.uri.to_s][request]
|
74
|
+
response.authoritative = false if response
|
75
|
+
response
|
78
76
|
end
|
79
77
|
|
80
78
|
def store(request, response)
|
@@ -104,9 +102,9 @@ module Resourceful
|
|
104
102
|
end
|
105
103
|
|
106
104
|
def lookup(request)
|
107
|
-
|
108
|
-
|
109
|
-
|
105
|
+
response = cache_entries_for(request)[request]
|
106
|
+
response.authoritative = false if response
|
107
|
+
response
|
110
108
|
end
|
111
109
|
|
112
110
|
def store(request, response)
|
@@ -161,7 +159,8 @@ module Resourceful
|
|
161
159
|
# @return [Resourceful::Response]
|
162
160
|
# The cached response for the specified request if one is available.
|
163
161
|
def [](request)
|
164
|
-
find { |
|
162
|
+
entry = find { |entry| entry.valid_for?(request) }
|
163
|
+
entry.response if entry
|
165
164
|
end
|
166
165
|
|
167
166
|
# Saves an entry into the collection. Replaces any existing ones that could
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "resourceful/cache_manager"
|
2
2
|
|
3
3
|
require 'memcache'
|
4
|
-
require 'facets/kernel/returning'
|
5
4
|
|
6
5
|
module Resourceful
|
7
6
|
class MemcacheCacheManager < AbstractCacheManager
|
@@ -45,9 +44,10 @@ module Resourceful
|
|
45
44
|
def store(request, response)
|
46
45
|
return unless response.cachable?
|
47
46
|
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
entries = cache_entries_for(request)
|
48
|
+
entries[request] = response
|
49
|
+
|
50
|
+
@memcache[request.to_mc_key] = entries
|
51
51
|
end
|
52
52
|
|
53
53
|
# Invalidates a all cached entries for a uri.
|
data/lib/resourceful/request.rb
CHANGED
@@ -86,7 +86,7 @@ module Resourceful
|
|
86
86
|
@cached_response ||= begin
|
87
87
|
@already_checked_cache = true
|
88
88
|
resp = accessor.cache_manager.lookup(self)
|
89
|
-
logger.info(" Retrieved from cache")
|
89
|
+
logger.info(" Retrieved from cache") if resp
|
90
90
|
resp
|
91
91
|
end
|
92
92
|
end
|
@@ -162,7 +162,6 @@ module Resourceful
|
|
162
162
|
# Perform the request, with no magic handling of anything.
|
163
163
|
def perform!
|
164
164
|
@request_time = Time.now
|
165
|
-
logger.debug("DEBUG: Request Header: #{@header.inspect}")
|
166
165
|
|
167
166
|
http_resp = NetHttpAdapter.make_request(@method, @resource.uri, @body, @header)
|
168
167
|
@response = Resourceful::Response.new(uri, *http_resp)
|
data/lib/resourceful/response.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'time'
|
3
|
-
require 'rubygems'
|
4
|
-
require 'facets/kernel/ergo'
|
5
3
|
require 'zlib'
|
6
4
|
|
7
5
|
module Resourceful
|
@@ -86,7 +84,8 @@ module Resourceful
|
|
86
84
|
end
|
87
85
|
|
88
86
|
def body
|
89
|
-
|
87
|
+
encoding = header['Content-Encoding'] && header['Content-Encoding'].first
|
88
|
+
case encoding
|
90
89
|
when nil
|
91
90
|
# body is identity encoded; just return it
|
92
91
|
@body
|
@@ -97,7 +96,7 @@ module Resourceful
|
|
97
96
|
header.delete('Content-Encoding')
|
98
97
|
@body
|
99
98
|
else
|
100
|
-
raise UnsupportedContentCoding, "Resourceful does not support #{
|
99
|
+
raise UnsupportedContentCoding, "Resourceful does not support #{encoding} content coding"
|
101
100
|
end
|
102
101
|
end
|
103
102
|
|
data/lib/resourceful.rb
CHANGED
@@ -12,7 +12,7 @@ require 'resourceful/http_accessor'
|
|
12
12
|
|
13
13
|
# Resourceful is a library that provides a high level HTTP interface.
|
14
14
|
module Resourceful
|
15
|
-
VERSION = "0.5.
|
15
|
+
VERSION = "0.5.3"
|
16
16
|
RESOURCEFUL_USER_AGENT_TOKEN = "Resourceful/#{VERSION}(Ruby/#{RUBY_VERSION})"
|
17
17
|
|
18
18
|
end
|
data/resourceful.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{resourceful}
|
5
|
-
s.version = "0.5.
|
5
|
+
s.version = "0.5.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Paul Sadauskas"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-07-15}
|
10
10
|
s.description = %q{An HTTP library for Ruby that takes advantage of everything HTTP has to offer.}
|
11
11
|
s.email = %q{psadauskas@gmail.com}
|
12
|
-
s.extra_rdoc_files = ["
|
13
|
-
s.files = ["
|
12
|
+
s.extra_rdoc_files = ["lib/resourceful.rb", "lib/resourceful/net_http_adapter.rb", "lib/resourceful/stubbed_resource_proxy.rb", "lib/resourceful/header.rb", "lib/resourceful/memcache_cache_manager.rb", "lib/resourceful/response.rb", "lib/resourceful/util.rb", "lib/resourceful/options_interpreter.rb", "lib/resourceful/cache_manager.rb", "lib/resourceful/request.rb", "lib/resourceful/resource.rb", "lib/resourceful/exceptions.rb", "lib/resourceful/http_accessor.rb", "lib/resourceful/authentication_manager.rb", "README.markdown"]
|
13
|
+
s.files = ["lib/resourceful.rb", "lib/resourceful/net_http_adapter.rb", "lib/resourceful/stubbed_resource_proxy.rb", "lib/resourceful/header.rb", "lib/resourceful/memcache_cache_manager.rb", "lib/resourceful/response.rb", "lib/resourceful/util.rb", "lib/resourceful/options_interpreter.rb", "lib/resourceful/cache_manager.rb", "lib/resourceful/request.rb", "lib/resourceful/resource.rb", "lib/resourceful/exceptions.rb", "lib/resourceful/http_accessor.rb", "lib/resourceful/authentication_manager.rb", "README.markdown", "MIT-LICENSE", "Rakefile", "Manifest", "spec/simple_sinatra_server_spec.rb", "spec/old_acceptance_specs.rb", "spec/acceptance_shared_specs.rb", "spec/spec_helper.rb", "spec/simple_sinatra_server.rb", "spec/acceptance/authorization_spec.rb", "spec/acceptance/header_spec.rb", "spec/acceptance/resource_spec.rb", "spec/acceptance/caching_spec.rb", "spec/acceptance/redirecting_spec.rb", "spec/spec.opts", "resourceful.gemspec"]
|
14
14
|
s.homepage = %q{http://github.com/paul/resourceful}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Resourceful", "--main", "README.markdown"]
|
16
16
|
s.require_paths = ["lib"]
|
@@ -25,30 +25,24 @@ Gem::Specification.new do |s|
|
|
25
25
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
26
26
|
s.add_runtime_dependency(%q<addressable>, [">= 0"])
|
27
27
|
s.add_runtime_dependency(%q<httpauth>, [">= 0"])
|
28
|
-
s.add_runtime_dependency(%q<rspec>, [">= 0"])
|
29
|
-
s.add_runtime_dependency(%q<facets>, [">= 0"])
|
30
|
-
s.add_runtime_dependency(%q<andand>, [">= 0"])
|
31
28
|
s.add_development_dependency(%q<thin>, [">= 0"])
|
32
29
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
33
30
|
s.add_development_dependency(%q<sinatra>, [">= 0"])
|
31
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
34
32
|
else
|
35
33
|
s.add_dependency(%q<addressable>, [">= 0"])
|
36
34
|
s.add_dependency(%q<httpauth>, [">= 0"])
|
37
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
38
|
-
s.add_dependency(%q<facets>, [">= 0"])
|
39
|
-
s.add_dependency(%q<andand>, [">= 0"])
|
40
35
|
s.add_dependency(%q<thin>, [">= 0"])
|
41
36
|
s.add_dependency(%q<yard>, [">= 0"])
|
42
37
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
38
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
43
39
|
end
|
44
40
|
else
|
45
41
|
s.add_dependency(%q<addressable>, [">= 0"])
|
46
42
|
s.add_dependency(%q<httpauth>, [">= 0"])
|
47
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
48
|
-
s.add_dependency(%q<facets>, [">= 0"])
|
49
|
-
s.add_dependency(%q<andand>, [">= 0"])
|
50
43
|
s.add_dependency(%q<thin>, [">= 0"])
|
51
44
|
s.add_dependency(%q<yard>, [">= 0"])
|
52
45
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
46
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
53
47
|
end
|
54
48
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
require File.dirname(__FILE__) + '/../spec_helper'
|
3
3
|
require 'resourceful'
|
4
|
+
require 'addressable/template'
|
4
5
|
|
5
6
|
describe Resourceful do
|
6
7
|
|
@@ -29,8 +30,8 @@ describe Resourceful do
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def uri_for_code(code, params = {})
|
32
|
-
|
33
|
-
|
33
|
+
template = Addressable::Template.new("http://localhost:3000/code/{code}")
|
34
|
+
uri = template.expand("code" => code.to_s)
|
34
35
|
|
35
36
|
uri_plus_params(uri, params)
|
36
37
|
end
|
@@ -63,7 +63,7 @@ end
|
|
63
63
|
describe "/code/nnn" do
|
64
64
|
it 'should respond with the code provided in the url' do
|
65
65
|
# Just try a handful
|
66
|
-
[
|
66
|
+
[200, 201, 301, 302, 304, 403, 404, 500].each do |code|
|
67
67
|
get "/code/#{code}"
|
68
68
|
@response.status.should == code
|
69
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paul-resourceful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Sadauskas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-07-15 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -33,28 +33,8 @@ dependencies:
|
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
37
|
-
type: :
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: "0"
|
44
|
-
version:
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: facets
|
47
|
-
type: :runtime
|
48
|
-
version_requirement:
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: "0"
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: andand
|
57
|
-
type: :runtime
|
36
|
+
name: thin
|
37
|
+
type: :development
|
58
38
|
version_requirement:
|
59
39
|
version_requirements: !ruby/object:Gem::Requirement
|
60
40
|
requirements:
|
@@ -63,7 +43,7 @@ dependencies:
|
|
63
43
|
version: "0"
|
64
44
|
version:
|
65
45
|
- !ruby/object:Gem::Dependency
|
66
|
-
name:
|
46
|
+
name: yard
|
67
47
|
type: :development
|
68
48
|
version_requirement:
|
69
49
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -73,7 +53,7 @@ dependencies:
|
|
73
53
|
version: "0"
|
74
54
|
version:
|
75
55
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
56
|
+
name: sinatra
|
77
57
|
type: :development
|
78
58
|
version_requirement:
|
79
59
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -83,7 +63,7 @@ dependencies:
|
|
83
63
|
version: "0"
|
84
64
|
version:
|
85
65
|
- !ruby/object:Gem::Dependency
|
86
|
-
name:
|
66
|
+
name: rspec
|
87
67
|
type: :development
|
88
68
|
version_requirement:
|
89
69
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -99,52 +79,52 @@ executables: []
|
|
99
79
|
extensions: []
|
100
80
|
|
101
81
|
extra_rdoc_files:
|
102
|
-
-
|
103
|
-
- lib/resourceful/cache_manager.rb
|
104
|
-
- lib/resourceful/exceptions.rb
|
82
|
+
- lib/resourceful.rb
|
105
83
|
- lib/resourceful/net_http_adapter.rb
|
106
84
|
- lib/resourceful/stubbed_resource_proxy.rb
|
107
85
|
- lib/resourceful/header.rb
|
108
|
-
- lib/resourceful/
|
109
|
-
- lib/resourceful/request.rb
|
110
|
-
- lib/resourceful/resource.rb
|
86
|
+
- lib/resourceful/memcache_cache_manager.rb
|
111
87
|
- lib/resourceful/response.rb
|
112
88
|
- lib/resourceful/util.rb
|
113
|
-
- lib/resourceful/http_accessor.rb
|
114
89
|
- lib/resourceful/options_interpreter.rb
|
115
|
-
- lib/resourceful/memcache_cache_manager.rb
|
116
|
-
- lib/resourceful.rb
|
117
|
-
files:
|
118
|
-
- Manifest
|
119
|
-
- spec/spec.opts
|
120
|
-
- spec/simple_sinatra_server_spec.rb
|
121
|
-
- spec/simple_sinatra_server.rb
|
122
|
-
- spec/acceptance/header_spec.rb
|
123
|
-
- spec/acceptance/caching_spec.rb
|
124
|
-
- spec/acceptance/resource_spec.rb
|
125
|
-
- spec/acceptance/redirecting_spec.rb
|
126
|
-
- spec/acceptance/authorization_spec.rb
|
127
|
-
- spec/acceptance_shared_specs.rb
|
128
|
-
- spec/spec_helper.rb
|
129
|
-
- spec/old_acceptance_specs.rb
|
130
|
-
- README.markdown
|
131
|
-
- resourceful.gemspec
|
132
90
|
- lib/resourceful/cache_manager.rb
|
91
|
+
- lib/resourceful/request.rb
|
92
|
+
- lib/resourceful/resource.rb
|
133
93
|
- lib/resourceful/exceptions.rb
|
94
|
+
- lib/resourceful/http_accessor.rb
|
95
|
+
- lib/resourceful/authentication_manager.rb
|
96
|
+
- README.markdown
|
97
|
+
files:
|
98
|
+
- lib/resourceful.rb
|
134
99
|
- lib/resourceful/net_http_adapter.rb
|
135
100
|
- lib/resourceful/stubbed_resource_proxy.rb
|
136
101
|
- lib/resourceful/header.rb
|
137
|
-
- lib/resourceful/
|
138
|
-
- lib/resourceful/request.rb
|
139
|
-
- lib/resourceful/resource.rb
|
102
|
+
- lib/resourceful/memcache_cache_manager.rb
|
140
103
|
- lib/resourceful/response.rb
|
141
104
|
- lib/resourceful/util.rb
|
142
|
-
- lib/resourceful/http_accessor.rb
|
143
105
|
- lib/resourceful/options_interpreter.rb
|
144
|
-
- lib/resourceful/
|
145
|
-
- lib/resourceful.rb
|
146
|
-
-
|
106
|
+
- lib/resourceful/cache_manager.rb
|
107
|
+
- lib/resourceful/request.rb
|
108
|
+
- lib/resourceful/resource.rb
|
109
|
+
- lib/resourceful/exceptions.rb
|
110
|
+
- lib/resourceful/http_accessor.rb
|
111
|
+
- lib/resourceful/authentication_manager.rb
|
112
|
+
- README.markdown
|
147
113
|
- MIT-LICENSE
|
114
|
+
- Rakefile
|
115
|
+
- Manifest
|
116
|
+
- spec/simple_sinatra_server_spec.rb
|
117
|
+
- spec/old_acceptance_specs.rb
|
118
|
+
- spec/acceptance_shared_specs.rb
|
119
|
+
- spec/spec_helper.rb
|
120
|
+
- spec/simple_sinatra_server.rb
|
121
|
+
- spec/acceptance/authorization_spec.rb
|
122
|
+
- spec/acceptance/header_spec.rb
|
123
|
+
- spec/acceptance/resource_spec.rb
|
124
|
+
- spec/acceptance/caching_spec.rb
|
125
|
+
- spec/acceptance/redirecting_spec.rb
|
126
|
+
- spec/spec.opts
|
127
|
+
- resourceful.gemspec
|
148
128
|
has_rdoc: false
|
149
129
|
homepage: http://github.com/paul/resourceful
|
150
130
|
post_install_message:
|