rest-core 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +7 -0
- data/lib/rest-core/middleware/cache.rb +5 -3
- data/lib/rest-core/version.rb +1 -1
- data/rest-core.gemspec +2 -2
- data/test/test_cache.rb +11 -1
- metadata +2 -2
data/CHANGES.md
CHANGED
@@ -92,14 +92,16 @@ class RestCore::Cache
|
|
92
92
|
|
93
93
|
def data_construct res
|
94
94
|
"#{ res[RESPONSE_STATUS]}\n" \
|
95
|
-
"#{(res[RESPONSE_HEADERS]||{}).map{|k,v|"#{k}: #{v}"}.join
|
95
|
+
"#{(res[RESPONSE_HEADERS]||{}).map{|k,v|"#{k}: #{v}\n"}.join}\n\n" \
|
96
96
|
"#{ res[RESPONSE_BODY]}"
|
97
97
|
end
|
98
98
|
|
99
99
|
def data_extract data
|
100
|
-
_, status, headers, body =
|
100
|
+
_, status, headers, body =
|
101
|
+
data.match(/\A(\d+)\n([^\n]+\n)*\n\n(.*)\Z/m).to_a
|
102
|
+
|
101
103
|
{RESPONSE_BODY => body,
|
102
|
-
RESPONSE_HEADERS => Hash[(headers||'').scan(/([^:]+): ([^\n]+)\n
|
104
|
+
RESPONSE_HEADERS => Hash[(headers||'').scan(/([^:]+): ([^\n]+)\n/)],
|
103
105
|
RESPONSE_STATUS => status.to_i}
|
104
106
|
end
|
105
107
|
|
data/lib/rest-core/version.rb
CHANGED
data/rest-core.gemspec
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rest-core"
|
5
|
-
s.version = "2.0.
|
5
|
+
s.version = "2.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = [
|
9
9
|
"Cardinal Blue",
|
10
10
|
"Lin Jen-Shin (godfat)"]
|
11
|
-
s.date = "2013-
|
11
|
+
s.date = "2013-02-07"
|
12
12
|
s.description = "Modular Ruby clients interface for REST APIs\n\nThere has been an explosion in the number of REST APIs available today.\nTo address the need for a way to access these APIs easily and elegantly,\nwe have developed rest-core, which consists of composable middleware\nthat allows you to build a REST client for any REST API. Or in the case of\ncommon APIs such as Facebook, Github, and Twitter, you can simply use the\ndedicated clients provided by [rest-more][].\n\n[rest-more]: https://github.com/cardinalblue/rest-more"
|
13
13
|
s.email = ["dev (XD) cardinalblue.com"]
|
14
14
|
s.files = [
|
data/test/test_cache.rb
CHANGED
@@ -25,7 +25,7 @@ describe RC::Cache do
|
|
25
25
|
end.new
|
26
26
|
c.get('/')
|
27
27
|
key = Digest::MD5.hexdigest('get:/:')
|
28
|
-
c.cache.should.eq("rest-core:cache:#{key}" => "200\nA: B\n\nresponse")
|
28
|
+
c.cache.should.eq("rest-core:cache:#{key}" => "200\nA: B\n\n\nresponse")
|
29
29
|
c.app.app.tick.should.eq 1
|
30
30
|
c.get('/')
|
31
31
|
c.app.app.tick.should.eq 1
|
@@ -107,6 +107,16 @@ describe RC::Cache do
|
|
107
107
|
c.cache.values.first.should.eq "200\n\n\n#{body}"
|
108
108
|
end
|
109
109
|
|
110
|
+
should 'multiline response' do
|
111
|
+
c = RC::Builder.client do
|
112
|
+
use RC::Cache, {}, 3600
|
113
|
+
end.new
|
114
|
+
stub_request(:get, 'html').to_return(:body => body = "a\n\nb")
|
115
|
+
c.get('html').should.eq body
|
116
|
+
c.cache.values.first.should.eq "200\n\n\n#{body}"
|
117
|
+
c.get('html') .should.eq body
|
118
|
+
end
|
119
|
+
|
110
120
|
should "follow redirect with cache.update correctly" do
|
111
121
|
c = RC::Builder.client do
|
112
122
|
use RC::FollowRedirect, 10
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-02-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|