rack-jsonp-tools 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -1,5 +1,3 @@
1
- require "rack/jsonp/utils"
2
-
3
1
  module Rack
4
2
  module JSONP
5
3
 
@@ -14,48 +12,32 @@ module Rack
14
12
  if callback = request.params[@callback_param]
15
13
  # Save for underlying middlewares
16
14
  env["jsonp.callback"] = callback
17
-
18
- # Remove callback param and value from query string
19
- Utils.remove_param(env, @callback_param)
20
-
21
15
 
22
16
  # Call original app
23
- status, headers, body = @app.call(env)
17
+ status, headers, @body = @app.call(env)
24
18
 
25
- # Wrap body with callback
26
- pre, post = "#{callback}(", ")"
27
- body = Wrapper.new(pre, body, post)
19
+ # Callback
20
+ @pre, @post = "#{callback}(", ")"
28
21
 
29
22
  # Fix content length if present
30
23
  if content_length = headers["Content-Length"]
31
- headers["Content-Length"] = (pre.size + content_length.to_i + post.size).to_s
24
+ headers["Content-Length"] = (@pre.size + content_length.to_i + @post.size).to_s
32
25
  end
33
26
 
34
27
  # Set proper content type as per RFC4329
35
28
  headers["Content-Type"] = "application/javascript"
36
29
 
37
- [status, headers, body]
30
+ [status, headers, self]
38
31
  else
39
32
  @app.call(env)
40
33
  end
41
34
  end
42
-
43
- private
44
-
45
- class Wrapper
46
- def initialize(pre, body, post)
47
- @pre, @body, @post = pre, body, post
48
- end
49
-
50
- def each(&block)
51
- block.call(@pre)
52
- @body.each(&block)
53
- block.call(@post)
54
- end
35
+
36
+ def each(&block)
37
+ block.call(@pre)
38
+ @body.each(&block)
39
+ block.call(@post)
55
40
  end
56
-
57
41
  end
58
-
59
-
60
42
  end
61
43
  end
@@ -1,5 +1,3 @@
1
- require "rack/jsonp/utils"
2
-
3
1
  module Rack
4
2
  module JSONP
5
3
 
@@ -10,7 +8,6 @@ module Rack
10
8
 
11
9
  def call(env)
12
10
  if env["jsonp.callback"] && method = Rack::Request.new(env).params[@method_param]
13
- Utils.remove_param(env, @method_param)
14
11
  method.upcase!
15
12
  env["REQUEST_METHOD"] = %w(GET HEAD PUT POST DELETE OPTIONS).include?(method) ? method : "GET"
16
13
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rack-jsonp-tools}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jacek Becela"]
12
- s.date = %q{2010-01-14}
12
+ s.date = %q{2010-06-21}
13
13
  s.description = %q{A collection of rack middlewares helping you add JSONP to your app}
14
14
  s.email = %q{jacek.becela@gmail.com}
15
15
  s.files = [
@@ -20,7 +20,6 @@ Gem::Specification.new do |s|
20
20
  "lib/rack/jsonp/callback.rb",
21
21
  "lib/rack/jsonp/method_override.rb",
22
22
  "lib/rack/jsonp/status_wrapper.rb",
23
- "lib/rack/jsonp/utils.rb",
24
23
  "rack-jsonp-tools.gemspec",
25
24
  "test/callback_test.rb",
26
25
  "test/method_override_test.rb",
@@ -29,7 +28,7 @@ Gem::Specification.new do |s|
29
28
  s.homepage = %q{http://github.com/ncr/rack-jsonp-tools}
30
29
  s.rdoc_options = ["--charset=UTF-8"]
31
30
  s.require_paths = ["lib"]
32
- s.rubygems_version = %q{1.3.5}
31
+ s.rubygems_version = %q{1.3.6}
33
32
  s.summary = %q{Add JSONP support to your app in less than 3 minutes! Method Override included for free!}
34
33
  s.test_files = [
35
34
  "test/callback_test.rb",
@@ -2,7 +2,6 @@ require "test_helper"
2
2
  require "rack/jsonp/callback"
3
3
 
4
4
  class CallbackTest < Test::Unit::TestCase
5
-
6
5
  def setup
7
6
  @status = 200
8
7
  @headers = { "Content-Type" => "application/json", "Content-Length" => "2" }
@@ -36,7 +35,5 @@ class CallbackTest < Test::Unit::TestCase
36
35
  "Content-Length" => expected_body.size.to_s
37
36
  }
38
37
  assert_equal expected_body, body
39
-
40
38
  end
41
-
42
39
  end
@@ -2,7 +2,6 @@ require "test_helper"
2
2
  require "rack/jsonp/method_override"
3
3
 
4
4
  class CallbackTest < Test::Unit::TestCase
5
-
6
5
  test "doesn't change anything when method is missing" do
7
6
  env = Rack::MockRequest.env_for("/?_method=post", :method => "GET", "jsonp.callback" => true)
8
7
  app = Rack::JSONP::MethodOverride.new(lambda { |env| Rack::Request.new(env) })
@@ -1,6 +1,6 @@
1
1
  require "rubygems"
2
2
 
3
- gem "test-unit"
3
+ gem "test-unit", ">=2.0.0"
4
4
 
5
5
  require "test/unit"
6
6
  require "rack"
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-jsonp-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Jacek Becela
@@ -9,39 +14,46 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-01-14 00:00:00 +01:00
17
+ date: 2010-06-21 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: rack
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :runtime
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: rack-test
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
33
41
  version: "0"
34
- version:
42
+ type: :development
43
+ version_requirements: *id002
35
44
  - !ruby/object:Gem::Dependency
36
45
  name: test-unit
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
46
+ prerelease: false
47
+ requirement: &id003 !ruby/object:Gem::Requirement
40
48
  requirements:
41
49
  - - ">="
42
50
  - !ruby/object:Gem::Version
51
+ segments:
52
+ - 2
53
+ - 0
43
54
  version: "2.0"
44
- version:
55
+ type: :development
56
+ version_requirements: *id003
45
57
  description: A collection of rack middlewares helping you add JSONP to your app
46
58
  email: jacek.becela@gmail.com
47
59
  executables: []
@@ -58,7 +70,6 @@ files:
58
70
  - lib/rack/jsonp/callback.rb
59
71
  - lib/rack/jsonp/method_override.rb
60
72
  - lib/rack/jsonp/status_wrapper.rb
61
- - lib/rack/jsonp/utils.rb
62
73
  - rack-jsonp-tools.gemspec
63
74
  - test/callback_test.rb
64
75
  - test/method_override_test.rb
@@ -76,18 +87,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
87
  requirements:
77
88
  - - ">="
78
89
  - !ruby/object:Gem::Version
90
+ segments:
91
+ - 0
79
92
  version: "0"
80
- version:
81
93
  required_rubygems_version: !ruby/object:Gem::Requirement
82
94
  requirements:
83
95
  - - ">="
84
96
  - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
85
99
  version: "0"
86
- version:
87
100
  requirements: []
88
101
 
89
102
  rubyforge_project:
90
- rubygems_version: 1.3.5
103
+ rubygems_version: 1.3.6
91
104
  signing_key:
92
105
  specification_version: 3
93
106
  summary: Add JSONP support to your app in less than 3 minutes! Method Override included for free!
@@ -1,12 +0,0 @@
1
- module Rack
2
- module JSONP
3
- module Utils
4
-
5
- def remove_param(env, param)
6
- env["QUERY_STRING"].gsub!(/#{Regexp.escape(param)}=[^&;]*/, "")
7
- end
8
- module_function :remove_param
9
-
10
- end
11
- end
12
- end