rack-cors 0.2.4 → 0.2.5

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.

Potentially problematic release.


This version of rack-cors might be problematic. Click here for more details.

data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
data/lib/rack/cors.rb CHANGED
@@ -120,7 +120,7 @@ module Rack
120
120
  def initialize(public_resource, path, opts={})
121
121
  self.path = path
122
122
  self.methods = ensure_enum(opts[:methods]) || [:get]
123
- self.credentials = opts[:credentials] || true
123
+ self.credentials = opts[:credentials].nil? ? true : opts[:credentials]
124
124
  self.max_age = opts[:max_age] || 1728000
125
125
  self.pattern = compile(path)
126
126
  @public_resource = public_resource
@@ -146,7 +146,7 @@ module Rack
146
146
 
147
147
  def to_headers(env)
148
148
  x_origin = env['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']
149
- h = { 'Access-Control-Allow-Origin' => public_resource? ? '*' : env['HTTP_ORIGIN'],
149
+ h = { 'Access-Control-Allow-Origin' => credentials ? env['HTTP_ORIGIN'] : public_resource? ? '*' : env['HTTP_ORIGIN'],
150
150
  'Access-Control-Allow-Methods' => methods.collect{|m| m.to_s.upcase}.join(', '),
151
151
  'Access-Control-Expose-Headers' => expose.nil? ? '' : expose.join(', '),
152
152
  'Access-Control-Max-Age' => max_age.to_s }
data/rack-cors.gemspec CHANGED
@@ -1,51 +1,47 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{rack-cors}
8
- s.version = "0.2.4"
7
+ s.name = "rack-cors"
8
+ s.version = "0.2.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Calvin Yu"]
12
- s.date = %q{2011-06-04}
13
- s.description = %q{Middleware that will make Rack-based apps CORS compatible. Read more here: http://blog.sourcebender.com/2010/06/09/introducin-rack-cors.html. Fork the project here: http://github.com/cyu/rack-cors}
14
- s.email = %q{csyu77@gmail.com}
12
+ s.date = "2012-04-26"
13
+ s.description = "Middleware that will make Rack-based apps CORS compatible. Read more here: http://blog.sourcebender.com/2010/06/09/introducin-rack-cors.html. Fork the project here: http://github.com/cyu/rack-cors"
14
+ s.email = "csyu77@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "README.rdoc",
21
- "Rakefile",
22
- "VERSION",
23
- "lib/rack/cors.rb",
24
- "rack-cors.gemspec",
25
- "test/cors_test.rb",
26
- "test/dsl_test.rb",
27
- "test/test.ru"
28
- ]
29
- s.homepage = %q{http://github.com/cyu/rack-cors}
30
- s.rdoc_options = ["--charset=UTF-8"]
31
- s.require_paths = ["lib"]
32
- s.rubygems_version = %q{1.3.7}
33
- s.summary = %q{Middleware for enabling Cross-Origin Resource Sharing in Rack apps}
34
- s.test_files = [
19
+ "README.rdoc",
20
+ "Rakefile",
21
+ "VERSION",
22
+ "lib/rack/cors.rb",
23
+ "rack-cors.gemspec",
35
24
  "test/cors_test.rb",
36
- "test/dsl_test.rb"
25
+ "test/dsl_test.rb",
26
+ "test/test.ru"
37
27
  ]
28
+ s.homepage = "http://github.com/cyu/rack-cors"
29
+ s.require_paths = ["lib"]
30
+ s.rubygems_version = "1.8.23"
31
+ s.summary = "Middleware for enabling Cross-Origin Resource Sharing in Rack apps"
38
32
 
39
33
  if s.respond_to? :specification_version then
40
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
34
  s.specification_version = 3
42
35
 
43
36
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
37
+ s.add_runtime_dependency(%q<rack-cors>, [">= 0"])
44
38
  s.add_runtime_dependency(%q<rack>, [">= 0"])
45
39
  else
40
+ s.add_dependency(%q<rack-cors>, [">= 0"])
46
41
  s.add_dependency(%q<rack>, [">= 0"])
47
42
  end
48
43
  else
44
+ s.add_dependency(%q<rack-cors>, [">= 0"])
49
45
  s.add_dependency(%q<rack>, [">= 0"])
50
46
  end
51
47
  end
data/test/cors_test.rb CHANGED
@@ -87,6 +87,12 @@ class CorsTest < Test::Unit::TestCase
87
87
  should '* origin should allow any origin' do
88
88
  preflight_request('http://locohost:3000', '/public')
89
89
  assert_cors_success
90
+ assert_equal 'http://locohost:3000', last_response.headers['Access-Control-Allow-Origin']
91
+ end
92
+
93
+ should '* origin should allow any origin, and set * if no credentials required' do
94
+ preflight_request('http://locohost:3000', '/public_without_credentials')
95
+ assert_cors_success
90
96
  assert_equal '*', last_response.headers['Access-Control-Allow-Origin']
91
97
  end
92
98
 
@@ -127,4 +133,4 @@ class CorsTest < Test::Unit::TestCase
127
133
  def assert_cors_failure
128
134
  assert_nil last_response.headers['Access-Control-Allow-Origin'], 'no expecting Access-Control-Allow-Origin header'
129
135
  end
130
- end
136
+ end
data/test/test.ru CHANGED
@@ -19,9 +19,10 @@ use Rack::Cors do
19
19
  allow do
20
20
  origins '*'
21
21
  resource '/public'
22
+ resource '/public_without_credentials', :credentials => false
22
23
  end
23
24
  end
24
25
 
25
26
  map '/' do
26
27
  run Proc.new { |env| [200, {'Content-Type' => 'text/html'}, ['success']] }
27
- end
28
+ end
metadata CHANGED
@@ -1,47 +1,57 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack-cors
3
- version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.5
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Calvin Yu
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-06-04 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: rack
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rack-cors
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
23
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rack
32
+ requirement: !ruby/object:Gem::Requirement
25
33
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
33
38
  type: :runtime
34
- version_requirements: *id001
35
- description: "Middleware that will make Rack-based apps CORS compatible. Read more here: http://blog.sourcebender.com/2010/06/09/introducin-rack-cors.html. Fork the project here: http://github.com/cyu/rack-cors"
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: ! 'Middleware that will make Rack-based apps CORS compatible. Read more
47
+ here: http://blog.sourcebender.com/2010/06/09/introducin-rack-cors.html. Fork the
48
+ project here: http://github.com/cyu/rack-cors'
36
49
  email: csyu77@gmail.com
37
50
  executables: []
38
-
39
51
  extensions: []
40
-
41
- extra_rdoc_files:
52
+ extra_rdoc_files:
42
53
  - README.rdoc
43
- files:
44
- - .gitignore
54
+ files:
45
55
  - README.rdoc
46
56
  - Rakefile
47
57
  - VERSION
@@ -50,40 +60,28 @@ files:
50
60
  - test/cors_test.rb
51
61
  - test/dsl_test.rb
52
62
  - test/test.ru
53
- has_rdoc: true
54
63
  homepage: http://github.com/cyu/rack-cors
55
64
  licenses: []
56
-
57
65
  post_install_message:
58
- rdoc_options:
59
- - --charset=UTF-8
60
- require_paths:
66
+ rdoc_options: []
67
+ require_paths:
61
68
  - lib
62
- required_ruby_version: !ruby/object:Gem::Requirement
69
+ required_ruby_version: !ruby/object:Gem::Requirement
63
70
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- hash: 3
68
- segments:
69
- - 0
70
- version: "0"
71
- required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
76
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- version: "0"
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
80
81
  requirements: []
81
-
82
82
  rubyforge_project:
83
- rubygems_version: 1.3.7
83
+ rubygems_version: 1.8.23
84
84
  signing_key:
85
85
  specification_version: 3
86
86
  summary: Middleware for enabling Cross-Origin Resource Sharing in Rack apps
87
- test_files:
88
- - test/cors_test.rb
89
- - test/dsl_test.rb
87
+ test_files: []
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- pkg
2
- Gemfile.lock