resterl 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -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
@@ -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.7"
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 D\303\274tsch"]
12
- s.date = %q{2011-02-08}
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.3.7}
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
- hash: 17
5
- prerelease: false
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-02-08 00:00:00 +01:00
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.3.7
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
- - test/helper.rb
135
- - test/test_resterl.rb
111
+ test_files: []
112
+