resterl 0.0.7 → 0.0.8
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/VERSION +1 -1
- data/lib/resterl/base_object.rb +37 -0
- data/lib/resterl/client.rb +14 -1
- data/lib/resterl/delete_request.rb +17 -0
- data/lib/resterl/put_request.rb +18 -0
- data/lib/resterl.rb +2 -0
- data/resterl.gemspec +6 -9
- metadata +8 -31
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/lib/resterl/base_object.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'hashie'
|
2
2
|
|
3
|
+
# Idee: If-Match wäre bei .delete_object und .put_object ein interessantes
|
4
|
+
# Feature.
|
5
|
+
|
3
6
|
class Resterl::BaseObject #< Hashie::Mash
|
4
7
|
|
5
8
|
include ClassLevelInheritableAttributes
|
@@ -33,13 +36,47 @@ class Resterl::BaseObject #< Hashie::Mash
|
|
33
36
|
end
|
34
37
|
|
35
38
|
def self.post_to_object url, params = {}, data = {}
|
39
|
+
# TODO: Refactoring
|
40
|
+
|
36
41
|
headers = {
|
37
42
|
'Accept' => complete_mime_type,
|
38
43
|
'Content-Type' => complete_mime_type
|
39
44
|
}
|
40
45
|
data = composer.call(data)
|
41
46
|
response = resterl_client.post(url, params, data, headers)
|
47
|
+
|
48
|
+
doc = response.body
|
49
|
+
doc = parser.call(doc)
|
50
|
+
doc = mapper.map(doc) if @mapper
|
51
|
+
new(doc, response)
|
42
52
|
end
|
53
|
+
|
54
|
+
def self.delete_object url
|
55
|
+
headers = {
|
56
|
+
'Accept' => complete_mime_type,
|
57
|
+
}
|
58
|
+
resterl_client.delete(url, {}, headers, {})
|
59
|
+
# TODO: Antwort parsen?
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.put_object url, params = {}, data
|
63
|
+
# TODO: Refactoring
|
64
|
+
|
65
|
+
headers = {
|
66
|
+
'Accept' => complete_mime_type,
|
67
|
+
'Content-Type' => complete_mime_type
|
68
|
+
}
|
69
|
+
data = composer.call(data)
|
70
|
+
response = resterl_client.put(url, params, data, headers)
|
71
|
+
|
72
|
+
doc = response.body
|
73
|
+
doc = parser.call(doc)
|
74
|
+
doc = mapper.map(doc) if @mapper
|
75
|
+
|
76
|
+
# TODO: In Ordnung?
|
77
|
+
new(doc, response)
|
78
|
+
end
|
79
|
+
|
43
80
|
|
44
81
|
def self.mime_type= t
|
45
82
|
self.parser, self.composer, self.complete_mime_type = case t
|
data/lib/resterl/client.rb
CHANGED
@@ -41,6 +41,20 @@ class Resterl::Client
|
|
41
41
|
|
42
42
|
response
|
43
43
|
end
|
44
|
+
|
45
|
+
def put url, params, data, headers
|
46
|
+
# TODO: Testen, durchdenken, refactoring?
|
47
|
+
url = setup_url url
|
48
|
+
request = Resterl::PutRequest.new(self, url, params, data, headers)
|
49
|
+
request.perform.response
|
50
|
+
end
|
51
|
+
|
52
|
+
def delete url, params, data, headers
|
53
|
+
# TODO: Testen, durchdenken, refactoring?
|
54
|
+
url = setup_url url
|
55
|
+
request = Resterl::DeleteRequest.new(self, url, params, data, headers)
|
56
|
+
request.perform.response
|
57
|
+
end
|
44
58
|
|
45
59
|
private
|
46
60
|
|
@@ -65,7 +79,6 @@ class Resterl::Client
|
|
65
79
|
# Aus dem Cache muss nichts entfernt werden, weil ja auch kein Eintrag
|
66
80
|
# (mehr) drin ist.
|
67
81
|
new_response.error!
|
68
|
-
|
69
82
|
when Net::HTTPNotModified
|
70
83
|
# Wenn "304 Not Modified", dann altes Ergebnis als neues Ergebnis
|
71
84
|
# verwenden
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# TODO: Refactoring
|
2
|
+
|
3
|
+
class Resterl::DeleteRequest < Resterl::GenericRequest
|
4
|
+
def initialize client, url, query_params, data, headers
|
5
|
+
super client, url, query_params, headers
|
6
|
+
@data = data
|
7
|
+
end
|
8
|
+
def perform
|
9
|
+
http, path = get_http_object_and_query_path
|
10
|
+
request = Net::HTTP::Delete.new path, @headers
|
11
|
+
apply_basic_auth request
|
12
|
+
self.response = http.request(request)
|
13
|
+
|
14
|
+
self
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# TODO: Refactoring
|
2
|
+
|
3
|
+
class Resterl::PutRequest < Resterl::GenericRequest
|
4
|
+
def initialize client, url, query_params, data, headers
|
5
|
+
super client, url, query_params, headers
|
6
|
+
@data = data
|
7
|
+
end
|
8
|
+
def perform
|
9
|
+
http, path = get_http_object_and_query_path
|
10
|
+
request = Net::HTTP::Put.new path, @headers
|
11
|
+
apply_basic_auth request
|
12
|
+
request.body = @data
|
13
|
+
self.response = http.request(request)
|
14
|
+
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/lib/resterl.rb
CHANGED
@@ -18,6 +18,8 @@ require 'resterl/client'
|
|
18
18
|
require 'resterl/generic_request'
|
19
19
|
require 'resterl/get_request'
|
20
20
|
require 'resterl/post_request'
|
21
|
+
require 'resterl/put_request'
|
22
|
+
require 'resterl/delete_request'
|
21
23
|
require 'resterl/response'
|
22
24
|
require 'resterl/base_object'
|
23
25
|
|
data/resterl.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{resterl}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Florian
|
12
|
-
s.date = %q{2011-
|
11
|
+
s.authors = ["Florian Dütsch"]
|
12
|
+
s.date = %q{2011-08-17}
|
13
13
|
s.email = %q{florian.duetsch@nix-wie-weg.de}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -31,9 +31,11 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/resterl/caches/simple_cache.rb",
|
32
32
|
"lib/resterl/class_level_inheritable_attributes.rb",
|
33
33
|
"lib/resterl/client.rb",
|
34
|
+
"lib/resterl/delete_request.rb",
|
34
35
|
"lib/resterl/generic_request.rb",
|
35
36
|
"lib/resterl/get_request.rb",
|
36
37
|
"lib/resterl/post_request.rb",
|
38
|
+
"lib/resterl/put_request.rb",
|
37
39
|
"lib/resterl/response.rb",
|
38
40
|
"resterl.gemspec",
|
39
41
|
"test/helper.rb",
|
@@ -41,15 +43,10 @@ Gem::Specification.new do |s|
|
|
41
43
|
]
|
42
44
|
s.homepage = %q{http://github.com/Nix-wie-weg/resterl}
|
43
45
|
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = %q{1.
|
46
|
+
s.rubygems_version = %q{1.6.2}
|
45
47
|
s.summary = %q{Rudimentary HTTP client with focus on caching}
|
46
|
-
s.test_files = [
|
47
|
-
"test/helper.rb",
|
48
|
-
"test/test_resterl.rb"
|
49
|
-
]
|
50
48
|
|
51
49
|
if s.respond_to? :specification_version then
|
52
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
50
|
s.specification_version = 3
|
54
51
|
|
55
52
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resterl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 7
|
10
|
-
version: 0.0.7
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.8
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- "Florian D\xC3\xBCtsch"
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-08-17 00:00:00 +02:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,9 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
24
|
version: "0"
|
33
25
|
type: :development
|
34
26
|
version_requirements: *id001
|
@@ -40,11 +32,6 @@ dependencies:
|
|
40
32
|
requirements:
|
41
33
|
- - ~>
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 15
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 4
|
47
|
-
- 0
|
48
35
|
version: 0.4.0
|
49
36
|
type: :runtime
|
50
37
|
version_requirements: *id002
|
@@ -56,11 +43,6 @@ dependencies:
|
|
56
43
|
requirements:
|
57
44
|
- - ~>
|
58
45
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 13
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
- 7
|
63
|
-
- 7
|
64
46
|
version: 0.7.7
|
65
47
|
type: :runtime
|
66
48
|
version_requirements: *id003
|
@@ -89,9 +71,11 @@ files:
|
|
89
71
|
- lib/resterl/caches/simple_cache.rb
|
90
72
|
- lib/resterl/class_level_inheritable_attributes.rb
|
91
73
|
- lib/resterl/client.rb
|
74
|
+
- lib/resterl/delete_request.rb
|
92
75
|
- lib/resterl/generic_request.rb
|
93
76
|
- lib/resterl/get_request.rb
|
94
77
|
- lib/resterl/post_request.rb
|
78
|
+
- lib/resterl/put_request.rb
|
95
79
|
- lib/resterl/response.rb
|
96
80
|
- resterl.gemspec
|
97
81
|
- test/helper.rb
|
@@ -110,26 +94,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
94
|
requirements:
|
111
95
|
- - ">="
|
112
96
|
- !ruby/object:Gem::Version
|
113
|
-
hash: 3
|
114
|
-
segments:
|
115
|
-
- 0
|
116
97
|
version: "0"
|
117
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
99
|
none: false
|
119
100
|
requirements:
|
120
101
|
- - ">="
|
121
102
|
- !ruby/object:Gem::Version
|
122
|
-
hash: 3
|
123
|
-
segments:
|
124
|
-
- 0
|
125
103
|
version: "0"
|
126
104
|
requirements: []
|
127
105
|
|
128
106
|
rubyforge_project:
|
129
|
-
rubygems_version: 1.
|
107
|
+
rubygems_version: 1.6.2
|
130
108
|
signing_key:
|
131
109
|
specification_version: 3
|
132
110
|
summary: Rudimentary HTTP client with focus on caching
|
133
|
-
test_files:
|
134
|
-
|
135
|
-
- test/test_resterl.rb
|
111
|
+
test_files: []
|
112
|
+
|