optionsful 0.5.2 → 0.5.3

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/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color -f d
data/README.textile CHANGED
@@ -63,7 +63,7 @@ h1. INSTALLATION:
63
63
  <pre>$ gem install optionsful</pre>
64
64
  # Enjoy! And give feedback! :)
65
65
 
66
- h1. CONFIGURATION
66
+ h1. CONFIGURATION:
67
67
 
68
68
  h2. Setting up the @Link@ header
69
69
 
@@ -71,13 +71,17 @@ h2. Setting up the @Link@ header
71
71
  ** run @rake optionsful:yml@
72
72
  ** edit the 'optionsful.yml' file at your application's 'config' folder.
73
73
  * Example:
74
- <pre>development:
75
- link: true
76
- host: auto
77
- base_path: /api
78
- propagate: true</pre>
79
74
 
80
- h2. Possible values and effects: (the underline values are the default ones)
75
+ <pre>
76
+ development:
77
+ link: true
78
+ host: auto
79
+ base_path: /api
80
+ propagate: true
81
+ </pre>
82
+
83
+
84
+ h2. Possible values and effects: (the underlined values are the default ones)
81
85
 
82
86
  * @link@
83
87
  ** [+false+]: Do not include the "Link" in the response headers.
@@ -110,11 +114,26 @@ h2. Possible values and effects: (the underline values are the default ones)
110
114
  h2. KNOWN ISSUES
111
115
  * Rails route recognition still need some work
112
116
 
113
- h2. Development notes
117
+ h2. Developer notes
114
118
 
115
- * To bleed on the edge, at your Rails 3 application's @Gemfile@:
119
+ <pre>
120
+ $ cd ~/your_workspace
121
+ $ git clone git@github.com:kayaman/optionsful.git
122
+ $ cd optionsful
123
+ $ rake
124
+ </pre>
125
+
126
+ * To bleed on the edge, add at your Rails 3 application's @Gemfile@:
116
127
  <pre>gem 'optionsful', :path => "~/your_workspace/optionsful/"</pre>
117
128
 
129
+ * TODO: check dependencies.
130
+
131
+ h2. TODOs
132
+
133
+ * RSpec 2.0 => http://github.com/rspec/rspec-core/blob/master/Upgrade.markdown
134
+ * spec_helper allow_only(headers, *method)
135
+
136
+
118
137
  h2. Get involved
119
138
  * Mailing list: http://groups.google.com/group/optionsful
120
139
  * Bug tracker : http://kayaman.lighthouseapp.com/projects/56438-optionsful/overview
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ begin
13
13
  gem.rubyforge_project = "optionsful"
14
14
  gem.add_development_dependency "rspec", ">= 1.2.9"
15
15
  gem.add_development_dependency "yard", ">= 0"
16
- gem.add_dependency "rails", "= 3.0.0"
16
+ gem.add_dependency "rails", ">= 3.0.0"
17
17
  end
18
18
  Jeweler::GemcutterTasks.new
19
19
  Jeweler::RubyforgeTasks.new do |rubyforge|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.2
1
+ 0.5.3
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.5.2"
8
+ s.version = "0.5.3"
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-10-02}
12
+ s.date = %q{2010-11-29}
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 = [
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ".autotest",
21
21
  ".document",
22
22
  ".gitignore",
23
+ ".rspec",
23
24
  "LICENSE",
24
25
  "README.textile",
25
26
  "Rakefile",
@@ -40,7 +41,6 @@ Gem::Specification.new do |s|
40
41
  "spec/fake_app.rb",
41
42
  "spec/optionsful_configurator_spec.rb",
42
43
  "spec/optionsful_server_spec.rb",
43
- "spec/spec.opts",
44
44
  "spec/spec_helper.rb",
45
45
  "tasks/optionsful.rake"
46
46
  ]
@@ -64,16 +64,16 @@ Gem::Specification.new do |s|
64
64
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
65
65
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
66
66
  s.add_development_dependency(%q<yard>, [">= 0"])
67
- s.add_runtime_dependency(%q<rails>, ["= 3.0.0"])
67
+ s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
68
68
  else
69
69
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
70
70
  s.add_dependency(%q<yard>, [">= 0"])
71
- s.add_dependency(%q<rails>, ["= 3.0.0"])
71
+ s.add_dependency(%q<rails>, [">= 3.0.0"])
72
72
  end
73
73
  else
74
74
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
75
75
  s.add_dependency(%q<yard>, [">= 0"])
76
- s.add_dependency(%q<rails>, ["= 3.0.0"])
76
+ s.add_dependency(%q<rails>, [">= 3.0.0"])
77
77
  end
78
78
  end
79
79
 
@@ -49,12 +49,19 @@ describe "Optionsful" do
49
49
  resources :posts
50
50
  end
51
51
  end
52
+
53
+ it "the /posts should allow GET and POST requests" do
54
+ response = http_options_request("/posts")
55
+ validate_response(response)
56
+ response[0].should be 204
57
+ should_allow(response[1], "GET", "POST")
58
+ end
52
59
 
53
60
  it "the index action displays a list of all posts in response of a GET request" do
54
61
  response = http_options_request("/posts")
55
62
  validate_response(response)
56
63
  response[0].should be 204
57
- response[1]["Allow"].should include "GET"
64
+ should_allow(response[1], "GET")
58
65
  end
59
66
 
60
67
  it "the new action return from a GET request an HTML form for creating a new post" do
@@ -62,7 +69,6 @@ describe "Optionsful" do
62
69
  validate_response(response)
63
70
  response[0].should be 204
64
71
  response[1]["Allow"].should include "GET"
65
- response[1]["Allow"].should_not include "POST"
66
72
  end
67
73
 
68
74
  it "the create action uses POST to create a new post instance" do
@@ -71,6 +77,13 @@ describe "Optionsful" do
71
77
  response[0].should be 204
72
78
  response[1]["Allow"].should include "POST"
73
79
  end
80
+
81
+ it "the entry index should allow GET, PUT and DELETE" do
82
+ response = http_options_request("/posts/1")
83
+ validate_response(response)
84
+ response[0].should be 204
85
+ should_allow(response[1], "GET", "PUT", "DELETE")
86
+ end
74
87
 
75
88
  it "the show action display a specific post in response of a GET request" do
76
89
  response = http_options_request("/posts/1")
@@ -378,7 +391,7 @@ describe "Optionsful" do
378
391
  response = http_options_request("/photos/chick/show/123.json")
379
392
  validate_response(response)
380
393
  response[0].should be 204
381
- response[1]["Allow"].should include "GET"
394
+ should_allow(response[1], "GET")
382
395
  end
383
396
 
384
397
  after(:all) do
data/spec/spec_helper.rb CHANGED
@@ -6,8 +6,8 @@ require 'optionsful'
6
6
  require 'server'
7
7
  require 'introspections'
8
8
 
9
- require 'spec'
10
- require 'spec/autorun'
9
+ require 'rspec'
10
+
11
11
  require 'fake_app'
12
12
  require 'rubygems'
13
13
 
@@ -17,7 +17,7 @@ require 'rack/test'
17
17
  require 'rack/lobster'
18
18
  require 'fileutils'
19
19
 
20
- Spec::Runner.configure do |config|
20
+ RSpec.configure do |config|
21
21
 
22
22
  end
23
23
 
@@ -69,6 +69,17 @@ DEFAULT_ENV = { "rack.version" => Rack::VERSION, "rack.input" => StringIO.new, "
69
69
  headers["Allow"].include?(method)
70
70
  end
71
71
 
72
+ def should_allow(headers, *method)
73
+ methods = method
74
+ allow = headers["Allow"].gsub(',', ' ')
75
+ methods.each do |m|
76
+ allow.include?(m)
77
+ allow.gsub!(m, '')
78
+ end
79
+ allow.gsub(' ', '')
80
+ return allow.empty?
81
+ end
82
+
72
83
  def validate_response(response)
73
84
  response.should be_a_kind_of Array
74
85
  response.size.should == 3
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: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 2
10
- version: 0.5.2
9
+ - 3
10
+ version: 0.5.3
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-10-02 00:00:00 -03:00
18
+ date: 2010-11-29 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -54,7 +54,7 @@ dependencies:
54
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
- - - "="
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  hash: 7
60
60
  segments:
@@ -77,6 +77,7 @@ files:
77
77
  - .autotest
78
78
  - .document
79
79
  - .gitignore
80
+ - .rspec
80
81
  - LICENSE
81
82
  - README.textile
82
83
  - Rakefile
@@ -97,7 +98,6 @@ files:
97
98
  - spec/fake_app.rb
98
99
  - spec/optionsful_configurator_spec.rb
99
100
  - spec/optionsful_server_spec.rb
100
- - spec/spec.opts
101
101
  - spec/spec_helper.rb
102
102
  - tasks/optionsful.rake
103
103
  has_rdoc: true
data/spec/spec.opts DELETED
@@ -1 +0,0 @@
1
- --color --debugger