httparty_sober 0.2.0 → 0.2.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.
- data/README.rdoc +26 -1
- data/VERSION +1 -1
- data/lib/httparty/sober.rb +3 -1
- data/test/test_httparty_sober.rb +7 -3
- metadata +38 -21
data/README.rdoc
CHANGED
@@ -1,6 +1,31 @@
|
|
1
1
|
= httparty_sober
|
2
2
|
|
3
|
-
|
3
|
+
makes you not get drunken when httpartying.
|
4
|
+
|
5
|
+
== Description
|
6
|
+
|
7
|
+
httparty_sober integrates mloughran's APICache into HTTParty. This allows you to easily cache your HTTP requests.
|
8
|
+
Have a look at the APICache readme for the cache details:
|
9
|
+
|
10
|
+
http://github.com/mloughran/api_cache
|
11
|
+
|
12
|
+
== Usage Example:
|
13
|
+
|
14
|
+
class CacheParty
|
15
|
+
include HTTParty
|
16
|
+
include HTTParty::Sober
|
17
|
+
|
18
|
+
# setup APICache.
|
19
|
+
# the cache method accepts a :store parameter and default APICache options (like :valid, :timeout,...)
|
20
|
+
# you can also use the bang method cache! which overwrites the default HTTParty#get method and forces caching.
|
21
|
+
cache :store => Moneta::Memcache.new(:server => "localhost")
|
22
|
+
end
|
23
|
+
|
24
|
+
CacheParty.get_with_caching "/foo"
|
25
|
+
# get_with_caching acts like HTTParty's #get but caches the result
|
26
|
+
|
27
|
+
|
28
|
+
|
4
29
|
|
5
30
|
== Note on Patches/Pull Requests
|
6
31
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/httparty/sober.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'digest/md5'
|
1
2
|
module HTTParty
|
2
3
|
module Sober
|
3
4
|
def self.included(base)
|
@@ -24,7 +25,8 @@ module HTTParty
|
|
24
25
|
|
25
26
|
def get_with_caching(path, options={})
|
26
27
|
cache_options = (@@cache_options || {}).merge(options[:cache] || {})
|
27
|
-
|
28
|
+
query = options[:query] ||= {}
|
29
|
+
key = Digest::MD5.hexdigest("#{path.to_s}-#{query.collect{|e| e.join("=")}.join("&")}")
|
28
30
|
APICache.get(key,cache_options) do
|
29
31
|
perform_request(Net::HTTP::Get, path, options)
|
30
32
|
end
|
data/test/test_httparty_sober.rb
CHANGED
@@ -34,7 +34,8 @@ class TestHttpartySober < Test::Unit::TestCase
|
|
34
34
|
CacheKey.cache
|
35
35
|
url = "/params"
|
36
36
|
query = {:hey=> "ho", :lets => "go"}
|
37
|
-
|
37
|
+
|
38
|
+
key = md5_key(url,query)
|
38
39
|
APICache.expects(:get).with(key,{})
|
39
40
|
CacheKey.get_with_caching url, {:query => query}
|
40
41
|
end
|
@@ -42,7 +43,7 @@ class TestHttpartySober < Test::Unit::TestCase
|
|
42
43
|
should "save and use default caching options" do
|
43
44
|
options = {:cache =>123, :valid => 123}
|
44
45
|
CacheParty.cache options
|
45
|
-
APICache.expects(:get).with("url", options)
|
46
|
+
APICache.expects(:get).with(md5_key("url"), options)
|
46
47
|
CacheParty.get_with_caching "url"
|
47
48
|
end
|
48
49
|
|
@@ -50,7 +51,7 @@ class TestHttpartySober < Test::Unit::TestCase
|
|
50
51
|
should "alias get to get_with_caching" do
|
51
52
|
klass = class OverwriteGet; include HTTParty; include HTTParty::Sober; end
|
52
53
|
klass.cache!
|
53
|
-
APICache.expects(:get).with("url", {}).returns("response")
|
54
|
+
APICache.expects(:get).with(md5_key("url"), {}).returns("response")
|
54
55
|
assert_equal "response", klass.get("url")
|
55
56
|
end
|
56
57
|
|
@@ -63,4 +64,7 @@ class TestHttpartySober < Test::Unit::TestCase
|
|
63
64
|
end
|
64
65
|
end
|
65
66
|
|
67
|
+
def md5_key(url,query={})
|
68
|
+
Digest::MD5.hexdigest("#{url.to_s}-#{query.collect{|e| e.join("=")}.join("&")}")
|
69
|
+
end
|
66
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty_sober
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 1
|
9
|
+
version: 0.2.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Michael Bumann
|
@@ -9,49 +14,59 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-05-12 00:00:00 +02:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: thoughtbot-shoulda
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :development
|
31
|
+
version_requirements: *id001
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: mocha
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
33
41
|
version: "0"
|
34
|
-
|
42
|
+
type: :development
|
43
|
+
version_requirements: *id002
|
35
44
|
- !ruby/object:Gem::Dependency
|
36
45
|
name: httparty
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
48
|
requirements:
|
41
49
|
- - ">="
|
42
50
|
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
43
53
|
version: "0"
|
44
|
-
|
54
|
+
type: :runtime
|
55
|
+
version_requirements: *id003
|
45
56
|
- !ruby/object:Gem::Dependency
|
46
57
|
name: api_cache
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
prerelease: false
|
59
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
60
|
requirements:
|
51
61
|
- - ">="
|
52
62
|
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
- 2
|
66
|
+
- 0
|
53
67
|
version: 0.2.0
|
54
|
-
|
68
|
+
type: :runtime
|
69
|
+
version_requirements: *id004
|
55
70
|
description: Cache responses in HTTParty using APICache
|
56
71
|
email: michael@railslove.com
|
57
72
|
executables: []
|
@@ -83,18 +98,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
98
|
requirements:
|
84
99
|
- - ">="
|
85
100
|
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 0
|
86
103
|
version: "0"
|
87
|
-
version:
|
88
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
105
|
requirements:
|
90
106
|
- - ">="
|
91
107
|
- !ruby/object:Gem::Version
|
108
|
+
segments:
|
109
|
+
- 0
|
92
110
|
version: "0"
|
93
|
-
version:
|
94
111
|
requirements: []
|
95
112
|
|
96
113
|
rubyforge_project:
|
97
|
-
rubygems_version: 1.3.
|
114
|
+
rubygems_version: 1.3.6
|
98
115
|
signing_key:
|
99
116
|
specification_version: 3
|
100
117
|
summary: HTTParties sober. Adds api_cache to httparty
|