rack-jsonp-tools 0.1.0 → 0.2.0

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/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