rackful 0.1.3 → 0.1.4

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.
Files changed (3) hide show
  1. data/lib/rackful/resource.rb +7 -5
  2. data/rackful.gemspec +1 -1
  3. metadata +44 -47
@@ -101,7 +101,7 @@ Meta-programmer method.
101
101
 
102
102
 
103
103
  =begin
104
- @todo Documentation
104
+ @return [Hash(method => Array(media_types))]
105
105
  =end
106
106
  def media_types
107
107
  @rackful_resource_media_types ||= {}
@@ -291,14 +291,16 @@ This works by inspecting all the {#do_METHOD} methods this object implements.
291
291
  def http_methods
292
292
  r = []
293
293
  if self.empty?
294
- self.class.all_media_types
294
+ if self.class.all_media_types[:PUT]
295
+ r << :PUT
296
+ end
295
297
  else
296
298
  r.push( :OPTIONS, :HEAD, :GET )
297
299
  r << :DELETE if self.respond_to?( :destroy )
298
300
  end
299
301
  self.class.public_instance_methods.each do
300
302
  |instance_method|
301
- if /\Ado_([A-Z])+\z/ === instance_method
303
+ if /\Ado_([A-Z]+)\z/ === instance_method
302
304
  r << $1.to_sym
303
305
  end
304
306
  end
@@ -377,7 +379,7 @@ Wrapper around {#do_METHOD #do_GET}
377
379
  =end
378
380
  def http_DELETE request, response
379
381
  raise HTTP404NotFound, path if self.empty?
380
- raise HTTP405MethodNotAllowed unless self.respond_to?( :destroy )
382
+ raise HTTP405MethodNotAllowed, self.http_methods unless self.respond_to?( :destroy )
381
383
  response.status = status_code( :no_content )
382
384
  if headers = self.destroy( request, response )
383
385
  response.headers.merge! headers
@@ -391,7 +393,7 @@ Wrapper around {#do_METHOD #do_GET}
391
393
  @raise [HTTP415UnsupportedMediaType, HTTP405MethodNotAllowed] if the resource doesn't implement the `PUT` method.
392
394
  =end
393
395
  def http_PUT request, response
394
- raise HTTP405MethodNotAllowed unless self.respond_to? :do_PUT
396
+ raise HTTP405MethodNotAllowed, self.http_methods unless self.respond_to? :do_PUT
395
397
  unless self.class.media_types[:PUT] &&
396
398
  self.class.media_types[:PUT].include?( request.media_type )
397
399
  raise HTTP415UnsupportedMediaType, self.class.media_types[:PUT]
data/rackful.gemspec CHANGED
@@ -2,7 +2,7 @@ Gem::Specification.new do |s|
2
2
 
3
3
  # Required properties:
4
4
  s.name = 'rackful'
5
- s.version = '0.1.3'
5
+ s.version = '0.1.4'
6
6
  s.summary = "Library for building ReSTful web services with Rack"
7
7
  s.description = <<EOS
8
8
  Rackful provides a minimal interface for developing ReSTful web services with
metadata CHANGED
@@ -1,54 +1,48 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rackful
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.4
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Pieter van Beek
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-24 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-11-26 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: rack
16
- version_requirements: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ! '>='
19
- - !ruby/object:Gem::Version
20
- version: '1.4'
21
- none: false
22
- requirement: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ! '>='
25
- - !ruby/object:Gem::Version
26
- version: '1.4'
27
- none: false
28
17
  prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.4"
29
24
  type: :runtime
30
- description: ! 'Rackful provides a minimal interface for developing ReSTful web services
31
- with
32
-
33
- Rack and Ruby. Instead of writing HTTP method handlers, you''ll implement
34
-
25
+ version_requirements: *id001
26
+ description: |
27
+ Rackful provides a minimal interface for developing ReSTful web services with
28
+ Rack and Ruby. Instead of writing HTTP method handlers, you'll implement
35
29
  resource objects, which expose their state at URLs.
36
-
37
-
30
+
38
31
  This version is not backward compatible with v0.0.x.
39
32
 
40
- '
41
33
  email: rackful@djinnit.com
42
34
  executables: []
35
+
43
36
  extensions: []
37
+
44
38
  extra_rdoc_files: []
45
- files:
39
+
40
+ files:
46
41
  - RACKFUL.md
47
42
  - README.md
48
43
  - LICENSE.md
49
44
  - CHANGES.md
50
45
  - example/config.ru
51
- - lib/rackful.rb
52
46
  - lib/rackful/resource.rb
53
47
  - lib/rackful/path.rb
54
48
  - lib/rackful/http_status.rb
@@ -59,32 +53,35 @@ files:
59
53
  - lib/rackful/middleware/method_spoofing.rb
60
54
  - lib/rackful/middleware/header_spoofing.rb
61
55
  - lib/rackful/middleware/relative_location.rb
56
+ - lib/rackful.rb
62
57
  - rackful.gemspec
63
58
  - mkdoc.sh
64
59
  homepage: http://pieterb.github.com/Rackful/
65
- licenses:
60
+ licenses:
66
61
  - Apache License 2.0
67
- post_install_message:
62
+ post_install_message:
68
63
  rdoc_options: []
69
- require_paths:
64
+
65
+ require_paths:
70
66
  - lib
71
- required_ruby_version: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ! '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
67
+ required_ruby_version: !ruby/object:Gem::Requirement
76
68
  none: false
77
- required_rubygems_version: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ! '>='
80
- - !ruby/object:Gem::Version
81
- version: '0'
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
74
  none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
83
79
  requirements: []
84
- rubyforge_project:
80
+
81
+ rubyforge_project:
85
82
  rubygems_version: 1.8.24
86
- signing_key:
83
+ signing_key:
87
84
  specification_version: 3
88
85
  summary: Library for building ReSTful web services with Rack
89
86
  test_files: []
90
- ...
87
+