reel-rack 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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/CHANGES.md +5 -0
- data/lib/reel/rack/server.rb +15 -4
- data/lib/reel/rack/version.rb +1 -1
- data/reel-rack.gemspec +1 -1
- data/spec/reel/rack/server_spec.rb +23 -2
- metadata +21 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c61306f5108aecfb3610f71ddc1bfc032592193b
|
4
|
+
data.tar.gz: 62ffa8bc88e7128ebae5c3d4ab39b8477a0efd9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ee8a4a4c93aec6375caf87e314ec73890b275274f3c92a4664f15bb672dfa78278d4ed5b27204dc60676a636b6e9521c3f150a8466ebf0dd183253f11fb28dc
|
7
|
+
data.tar.gz: ba63f4cd58b68d51de6ba4ba91790945c971e445dac2f7246f5e5f0015db46f28f04f90541a8ee39274451d0bcd84c62cdd379c2b8674dd541721f13ae4aaebc
|
data/.travis.yml
CHANGED
data/CHANGES.md
CHANGED
data/lib/reel/rack/server.rb
CHANGED
@@ -5,7 +5,7 @@ require 'rack'
|
|
5
5
|
|
6
6
|
module Reel
|
7
7
|
module Rack
|
8
|
-
class Server < Server
|
8
|
+
class Server < Reel::Server::HTTP
|
9
9
|
include Celluloid::Logger
|
10
10
|
|
11
11
|
attr_reader :app
|
@@ -53,11 +53,22 @@ module Reel
|
|
53
53
|
|
54
54
|
body.close if body.respond_to? :close
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
|
+
# Those headers must not start with 'HTTP_'.
|
58
|
+
NO_PREFIX_HEADERS=%w[CONTENT_TYPE CONTENT_LENGTH].freeze
|
59
|
+
|
57
60
|
def convert_headers(headers)
|
58
|
-
Hash[headers.map { |key, value|
|
61
|
+
Hash[headers.map { |key, value|
|
62
|
+
header = key.upcase.gsub('-','_')
|
63
|
+
|
64
|
+
if NO_PREFIX_HEADERS.member?(header)
|
65
|
+
[header, value]
|
66
|
+
else
|
67
|
+
['HTTP_' + header, value]
|
68
|
+
end
|
69
|
+
}]
|
59
70
|
end
|
60
|
-
|
71
|
+
|
61
72
|
def status_symbol(status)
|
62
73
|
if status.is_a?(Fixnum)
|
63
74
|
Http::Response::STATUS_CODES[status].downcase.gsub(/\s|-/, '_').to_sym
|
data/lib/reel/rack/version.rb
CHANGED
data/reel-rack.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "reel", ">= 0.
|
21
|
+
spec.add_runtime_dependency "reel", ">= 0.5.0"
|
22
22
|
spec.add_runtime_dependency "rack", ">= 1.4.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'net/http'
|
3
|
+
require 'rack/lint'
|
4
|
+
require 'rack/head'
|
3
5
|
|
4
6
|
describe Reel::Rack::Server do
|
5
7
|
let(:host) { "127.0.0.1" }
|
@@ -7,8 +9,8 @@ describe Reel::Rack::Server do
|
|
7
9
|
let(:body) { "hello world" }
|
8
10
|
|
9
11
|
subject do
|
10
|
-
app = proc { [200, {"Content-Type" => "text/plain"}, body] }
|
11
|
-
described_class.new(app, :Host => host, :Port => port)
|
12
|
+
app = proc { [200, {"Content-Type" => "text/plain"}, [body]] }
|
13
|
+
described_class.new(Rack::Lint.new(Rack::Head.new(app)), :Host => host, :Port => port)
|
12
14
|
end
|
13
15
|
|
14
16
|
it "runs a basic Hello World app" do
|
@@ -19,4 +21,23 @@ describe Reel::Rack::Server do
|
|
19
21
|
|
20
22
|
subject.terminate
|
21
23
|
end
|
24
|
+
|
25
|
+
it "success with basic HTTP methods" do
|
26
|
+
# Hax to wait for server to be started
|
27
|
+
subject.inspect
|
28
|
+
|
29
|
+
uri = URI("http://#{host}:#{port}/")
|
30
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
31
|
+
http.set_debug_output($stderr)
|
32
|
+
|
33
|
+
expect(http.request_get(uri.path).body).to eq body
|
34
|
+
expect(http.request_head(uri.path).body).to eq nil
|
35
|
+
|
36
|
+
expect(http.send_request('POST', uri.path, "test").body).to eq body
|
37
|
+
expect(http.send_request('PUT', uri.path, "test").body).to eq body
|
38
|
+
expect(http.send_request('PATCH', uri.path, "test").body).to eq body
|
39
|
+
expect(http.send_request('DELETE', uri.path).body).to eq body
|
40
|
+
|
41
|
+
subject.terminate
|
42
|
+
end
|
22
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reel-rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
@@ -9,76 +9,76 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-04-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: reel
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: 0.5.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 0.5.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rack
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 1.4.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.4.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '1.3'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '1.3'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rake
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
description: Rack adapter for Reel
|
@@ -89,9 +89,9 @@ executables:
|
|
89
89
|
extensions: []
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
|
-
- .gitignore
|
93
|
-
- .rspec
|
94
|
-
- .travis.yml
|
92
|
+
- ".gitignore"
|
93
|
+
- ".rspec"
|
94
|
+
- ".travis.yml"
|
95
95
|
- CHANGES.md
|
96
96
|
- Gemfile
|
97
97
|
- LICENSE.txt
|
@@ -119,20 +119,21 @@ require_paths:
|
|
119
119
|
- lib
|
120
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- -
|
127
|
+
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
requirements: []
|
131
131
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.0
|
132
|
+
rubygems_version: 2.2.0
|
133
133
|
signing_key:
|
134
134
|
specification_version: 4
|
135
135
|
summary: Rack adapter for Reel, a Celluloid::IO web server
|
136
136
|
test_files:
|
137
137
|
- spec/reel/rack/server_spec.rb
|
138
138
|
- spec/spec_helper.rb
|
139
|
+
has_rdoc:
|