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 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
+