optionsful 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -1,4 +1,4 @@
1
- h1. *O p t i o n s f u l*
1
+ h1. [+*O p t i o n s f u l*+]
2
2
 
3
3
  Provide HTTP OPTIONS support for the Ruby on Rails framework.
4
4
 
@@ -10,7 +10,7 @@ Provide HTTP OPTIONS support for the Ruby on Rails framework.
10
10
 
11
11
  h1. "-No! No! No! *-Show me the code!*"
12
12
 
13
- h3. Retrieving an HTTP OPTIONS request via telnet:
13
+ h2. Playing HTTP OPTIONS via telnet:
14
14
 
15
15
  <pre>
16
16
  $ telnet localhost 3000
@@ -42,7 +42,7 @@ Date: Thu, 22 Jul 2010 18:12:43 GMT
42
42
  Link: "<http://localhost:3000/api/posts/1/comments>; type=text/html; rel=help"
43
43
 
44
44
  </pre>
45
- ~Note the empty line which is part of the HTTP protocol.~
45
+ ~*Note the empty line which is part of the HTTP protocol.*~
46
46
 
47
47
  h3. I agree. Telnet is the geekest way.. ;-)
48
48
 
@@ -52,7 +52,7 @@ h3. I agree. Telnet is the geekest way.. ;-)
52
52
 
53
53
  h1. INSTALLATION:
54
54
 
55
- # Change directory to your Ruby on Rails web application,
55
+ # Change directory to your Ruby on Rails web application
56
56
  # Add gem dependency to @Gemfile@:
57
57
  <pre>gem 'optionsful'</pre>
58
58
  # Add it to the stack at @config/application.rb@:
@@ -63,6 +63,8 @@ h1. INSTALLATION:
63
63
  <pre>$ gem install optionsful</pre>
64
64
  # Enjoy! And give feedback! :)
65
65
 
66
+ h1. CONFIGURATION
67
+
66
68
  h2. Setting up the @Link@ header
67
69
 
68
70
  * To enable and setup the response's @Link@ header, install and edit the configuration file:
@@ -75,28 +77,32 @@ h2. Setting up the @Link@ header
75
77
  base_path: /api
76
78
  propagate: true</pre>
77
79
 
78
- h3. Possible values and effects: (the bold values are the default ones)
80
+ h2. Possible values and effects: (the underline values are the default ones)
79
81
 
80
82
  * @link@
81
- ** *false*: Do not include any "Link" header in the response.
82
- ** true: Do include it. Build the URI based on the 'host', 'base_path', and 'propagate' values, explained below.
83
+ ** [+false+]: Do not include the "Link" in the response headers.
84
+ *** some other settings are then ignored
85
+ ** true: Do include it!
86
+ *** build the *URI* based on the *host*, *base_path*, and *propagate* values, explained below.
83
87
 
84
88
  * @host@
85
- ** *auto*: Use the application's own address and port.
86
- ** private.mycompany.com: point it to another location. For instance: www.baurets.net. (Do not include http://).
87
-
89
+ ** [+auto+]: Use the application's own address and port.
90
+ ** custom URI: point it to another location
91
+ *** Example: www.baurets.net
92
+ *** *Note: do not include 'http://'*
88
93
 
89
94
  * @base_path@
90
- ** the path to be appended to the host. Default is */api*.
91
- ** to disable it, use @/@
92
- ** Example: /my_company/my_project/resources/api
95
+ ** the path to be appended to the host.
96
+ *** Default is [+*/api*+].
97
+ *** To disable it, use @/@
98
+ *** Example: /my_company_private_area/our_big_project/resources/api
93
99
 
94
100
  * @propagate@
95
101
  ** false: Do not append the request's path info to the URI.
96
- ** *true*: Do append it, as it is.
102
+ ** [+true+]: Do append it, as it is.
97
103
 
98
104
  * Generated Link example:
99
- (*link: true*, *host: auto*)
105
+ (*link: true*, *host: auto*, *base_path: /api*, *propagate: true*)
100
106
  <pre>Link: "<http://localhost:3000/api/posts/1/comments>; type=text/html; rel=help"</pre>
101
107
 
102
108
  * *Note*: @Allow@ *and* @Link@ *are expected headers on a response to an HTTP OPTIONS request.*
@@ -110,7 +116,6 @@ h2. Development notes
110
116
  * To bleed on the edge, at your Rails 3 application's @Gemfile@:
111
117
  <pre>gem 'optionsful', :path => "~/your_workspace/optionsful/"</pre>
112
118
 
113
-
114
119
  h2. Get involved
115
120
  * Mailing list: http://groups.google.com/group/optionsful
116
121
  * Bug tracker : http://kayaman.lighthouseapp.com/projects/56438-optionsful/overview
@@ -119,4 +124,4 @@ h2. CONTRIBUTORS
119
124
  * Me, myself and I, so far.
120
125
  * You are welcome, do it. ;-)
121
126
 
122
- Copyright (c) 2010 Marco Antonio Gonzalez Junior, kayaman@baurets.net, released under the MIT license.
127
+ Copyright (c) 2010 Marco Antonio Gonzalez Junior, kayaman@baurets.net, released under the MIT license.
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ begin
14
14
  gem.add_development_dependency "rspec", ">= 1.2.9"
15
15
  gem.add_development_dependency "yard", ">= 0"
16
16
  gem.add_development_dependency "cucumber", ">= 0"
17
- gem.add_dependency "rails", "= 3.0.0.rc"
17
+ gem.add_dependency "rails", "= 3.0.0.rc2"
18
18
  end
19
19
  Jeweler::GemcutterTasks.new
20
20
  Jeweler::RubyforgeTasks.new do |rubyforge|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.4.2
data/optionsful.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{optionsful}
8
- s.version = "0.4.1"
8
+ s.version = "0.4.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marco Antonio Gonzalez Junior"]
12
- s.date = %q{2010-08-07}
12
+ s.date = %q{2010-08-26}
13
13
  s.description = %q{Build RESTful web services supporting the HTTP OPTIONS verb on Ruby on Rails applications.}
14
14
  s.email = %q{kayaman@baurets.net}
15
15
  s.extra_rdoc_files = [
@@ -67,18 +67,18 @@ Gem::Specification.new do |s|
67
67
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
68
68
  s.add_development_dependency(%q<yard>, [">= 0"])
69
69
  s.add_development_dependency(%q<cucumber>, [">= 0"])
70
- s.add_runtime_dependency(%q<rails>, ["= 3.0.0.rc"])
70
+ s.add_runtime_dependency(%q<rails>, ["= 3.0.0.rc2"])
71
71
  else
72
72
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
73
73
  s.add_dependency(%q<yard>, [">= 0"])
74
74
  s.add_dependency(%q<cucumber>, [">= 0"])
75
- s.add_dependency(%q<rails>, ["= 3.0.0.rc"])
75
+ s.add_dependency(%q<rails>, ["= 3.0.0.rc2"])
76
76
  end
77
77
  else
78
78
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
79
79
  s.add_dependency(%q<yard>, [">= 0"])
80
80
  s.add_dependency(%q<cucumber>, [">= 0"])
81
- s.add_dependency(%q<rails>, ["= 3.0.0.rc"])
81
+ s.add_dependency(%q<rails>, ["= 3.0.0.rc2"])
82
82
  end
83
83
  end
84
84
 
@@ -106,7 +106,6 @@ describe "Optionsful" do
106
106
  response[0].should be 404
107
107
  end
108
108
 
109
-
110
109
  after(:all) do
111
110
  Rails.application.reload_routes!
112
111
  end
@@ -291,7 +290,7 @@ describe "Optionsful" do
291
290
  end
292
291
  end
293
292
 
294
- it "blah" do
293
+ it "a full flavour should work" do
295
294
  response = http_options_request("/products/123/sales/recent.xml")
296
295
  validate_response(response)
297
296
  response[0].should be 204
@@ -354,7 +353,7 @@ describe "Optionsful" do
354
353
  end
355
354
  end
356
355
 
357
- it " / should work" do
356
+ it "'/' should work" do
358
357
  response = http_options_request("/")
359
358
  validate_response(response)
360
359
  response[0].should be 204
@@ -366,8 +365,29 @@ describe "Optionsful" do
366
365
  end
367
366
 
368
367
  end
368
+
369
+ describe "route globbing" do
370
+
371
+ before(:all) do
372
+ rails_app.routes.draw do
373
+ match 'photos/*other' => 'photos#unknown'
374
+ end
375
+ end
376
+
377
+ it "should work" do
378
+ response = http_options_request("/photos/chick/show/123.json")
379
+ validate_response(response)
380
+ response[0].should be 204
381
+ response[1]["Allow"].should include "GET"
382
+ end
383
+
384
+ after(:all) do
385
+ Rails.application.reload_routes!
386
+ end
387
+
388
+ end
369
389
 
370
- describe "the legacy 'WILD' controller" do
390
+ describe "the legacy 'wild' controller" do
371
391
 
372
392
  before(:all) do
373
393
  rails_app.routes.draw do
@@ -392,7 +412,7 @@ describe "Optionsful" do
392
412
 
393
413
  context "the Link header" do
394
414
 
395
- describe "should not be present" do
415
+ describe "should NOT be present" do
396
416
 
397
417
  before(:each) do
398
418
  rails_app.routes.draw do
@@ -401,7 +421,7 @@ describe "Optionsful" do
401
421
  delete_configuration_file
402
422
  end
403
423
 
404
- it "if no directions were given" do
424
+ it "if NO directions were given" do
405
425
  response = http_options_request("/posts")
406
426
  validate_response(response)
407
427
  response[0].should be 204
@@ -436,7 +456,7 @@ describe "Optionsful" do
436
456
  link.should match /\A\".+\"\z/
437
457
  end
438
458
 
439
- it "the Link header may use its very current host" do
459
+ it "the Link header MAY use its very current host" do
440
460
  copy_configuration_file('optionsful_true.yml')
441
461
  response = http_options_request("/posts")
442
462
  validate_response(response)
@@ -445,7 +465,7 @@ describe "Optionsful" do
445
465
  link.should match /\A\"<http:\/\/localhost.+\"\z/
446
466
  end
447
467
 
448
- it "the Link header may use a custom host value" do
468
+ it "the Link header MAY use a custom host value" do
449
469
  copy_configuration_file('optionsful_true_custom.yml')
450
470
  response = http_options_request("/posts")
451
471
  validate_response(response)
@@ -454,7 +474,7 @@ describe "Optionsful" do
454
474
  link.should match /\A\"<http:\/\/www.baurets.net.+\"\z/
455
475
  end
456
476
 
457
- it "the Link header may use a custom base path value" do
477
+ it "the Link header MAY use a custom base path value" do
458
478
  copy_configuration_file('optionsful_true_custom_base_path.yml')
459
479
  response = http_options_request("/posts")
460
480
  validate_response(response)
@@ -463,7 +483,7 @@ describe "Optionsful" do
463
483
  link.should match /\A\"<http:\/\/www.baurets.net\/private\/api.+\"\z/
464
484
  end
465
485
 
466
- it "the Link header may propagate original path info" do
486
+ it "the Link header MAY propagate original path info" do
467
487
  copy_configuration_file('optionsful_true_custom_propagate.yml')
468
488
  response = http_options_request("/posts")
469
489
  validate_response(response)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optionsful
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marco Antonio Gonzalez Junior
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-07 00:00:00 -03:00
18
+ date: 2010-08-26 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -70,13 +70,13 @@ dependencies:
70
70
  requirements:
71
71
  - - "="
72
72
  - !ruby/object:Gem::Version
73
- hash: 7712042
73
+ hash: 977940607
74
74
  segments:
75
75
  - 3
76
76
  - 0
77
77
  - 0
78
- - rc
79
- version: 3.0.0.rc
78
+ - rc2
79
+ version: 3.0.0.rc2
80
80
  type: :runtime
81
81
  version_requirements: *id004
82
82
  description: Build RESTful web services supporting the HTTP OPTIONS verb on Ruby on Rails applications.