request 0.0.3 → 0.0.4
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 +7 -0
- data/.circle.yml +4 -0
- data/.travis.yml +3 -7
- data/Changelog.md +4 -0
- data/Gemfile +1 -1
- data/Gemfile.devtools +13 -13
- data/config/flay.yml +1 -1
- data/config/reek.yml +2 -1
- data/lib/request.rb +1 -14
- data/lib/request/rack.rb +48 -13
- data/request.gemspec +4 -4
- data/spec/shared/rack_env_accessor_behavior.rb +15 -3
- data/spec/unit/request/protocol/class_methods/get_spec.rb +24 -0
- data/spec/unit/request/rack/content_length_spec.rb +47 -0
- data/spec/unit/request/rack/protocol_spec.rb +0 -2
- data/spec/unit/request/rack/query_string_spec.rb +1 -1
- data/spec/unit/request/rack/rack_env_spec.rb +3 -3
- data/spec/unit/request/rack/request_method_spec.rb +0 -2
- metadata +17 -29
- data/lib/request/routed.rb +0 -20
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e5609a4d356f4253c73bbfd2b6bdcf67e736a20b
|
4
|
+
data.tar.gz: 97315e65a35520a162dc480632522570d5239c7d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5321734f4c8547c2664cf3332537734ba77f12f10659b2a7b003c335b43a1d77c0432737f9dc6c8e1ae7cd817e52e619d640519660c3dca44a1009e05d7e8974
|
7
|
+
data.tar.gz: f3b0c427a5866920d8aa72a2c2b2d92bd28f026e4025a0c485fb75311c2258761d75ff964afdaadfa207b47425b014f539b4a69a9613730f28631448c192f98e
|
data/.circle.yml
ADDED
data/.travis.yml
CHANGED
@@ -1,17 +1,13 @@
|
|
1
1
|
language: ruby
|
2
2
|
script: 'bundle exec rake spec'
|
3
3
|
rvm:
|
4
|
-
- ree
|
5
|
-
- 1.8.7
|
6
4
|
- 1.9.2
|
7
5
|
- 1.9.3
|
8
6
|
- 2.0.0
|
9
7
|
- ruby-head
|
10
|
-
- jruby-18mode
|
11
8
|
- jruby-19mode
|
12
9
|
- jruby-head
|
13
|
-
- rbx-18mode
|
14
10
|
- rbx-19mode
|
15
|
-
|
16
|
-
|
17
|
-
-
|
11
|
+
matrix:
|
12
|
+
allow_failures:
|
13
|
+
- rvm: ruby-head
|
data/Changelog.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.devtools
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem 'rake', '~> 10.0
|
4
|
+
gem 'rake', '~> 10.1.0'
|
5
5
|
gem 'rspec', '~> 2.13.0'
|
6
6
|
gem 'yard', '~> 0.8.6.1'
|
7
7
|
end
|
@@ -11,12 +11,12 @@ group :yard do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
group :guard do
|
14
|
-
gem 'guard', '~> 1.8.
|
14
|
+
gem 'guard', '~> 1.8.1'
|
15
15
|
gem 'guard-bundler', '~> 1.0.0'
|
16
|
-
gem 'guard-rspec', '~>
|
16
|
+
gem 'guard-rspec', '~> 3.0.2'
|
17
17
|
|
18
18
|
# file system change event handling
|
19
|
-
gem 'listen', '~> 1.
|
19
|
+
gem 'listen', '~> 1.2.2'
|
20
20
|
gem 'rb-fchange', '~> 0.0.6', :require => false
|
21
21
|
gem 'rb-fsevent', '~> 0.9.3', :require => false
|
22
22
|
gem 'rb-inotify', '~> 0.9.0', :require => false
|
@@ -28,20 +28,20 @@ group :guard do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
group :metrics do
|
31
|
-
gem 'backports',
|
32
|
-
gem 'coveralls',
|
33
|
-
gem 'flay',
|
34
|
-
gem 'flog',
|
35
|
-
gem 'reek',
|
36
|
-
gem 'simplecov',
|
37
|
-
gem 'yardstick',
|
31
|
+
gem 'backports', '~> 3.3', '>= 3.3.2'
|
32
|
+
gem 'coveralls', '~> 0.6.7'
|
33
|
+
gem 'flay', '~> 2.3.0'
|
34
|
+
gem 'flog', '~> 4.1.0'
|
35
|
+
gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
|
36
|
+
gem 'simplecov', '~> 0.7.1'
|
37
|
+
gem 'yardstick', '~> 0.9.6'
|
38
38
|
|
39
39
|
platforms :ruby_19 do
|
40
40
|
gem 'yard-spellcheck', '~> 0.1.5'
|
41
41
|
end
|
42
42
|
|
43
|
-
platforms :
|
44
|
-
gem 'mutant', '~> 0.
|
43
|
+
platforms :ruby_19, :ruby_20 do
|
44
|
+
gem 'mutant', '~> 0.3.0.beta4'
|
45
45
|
end
|
46
46
|
|
47
47
|
platforms :rbx do
|
data/config/flay.yml
CHANGED
data/config/reek.yml
CHANGED
data/lib/request.rb
CHANGED
@@ -10,7 +10,7 @@ require 'securerandom'
|
|
10
10
|
class Request
|
11
11
|
|
12
12
|
KEYS = %W(
|
13
|
-
path_info protocol port request_method
|
13
|
+
path_info protocol port request_method
|
14
14
|
host if_modified_since query_params query_params_hash
|
15
15
|
query_string content_length content_type body
|
16
16
|
).map(&:to_sym).freeze
|
@@ -133,18 +133,6 @@ class Request
|
|
133
133
|
"#{root_uri}#{path}"
|
134
134
|
end
|
135
135
|
|
136
|
-
# Return routed request
|
137
|
-
#
|
138
|
-
# @param [Hash] params
|
139
|
-
#
|
140
|
-
# @return [Request::Routed]
|
141
|
-
#
|
142
|
-
# @api private
|
143
|
-
#
|
144
|
-
def route(params)
|
145
|
-
Routed.new(self, params)
|
146
|
-
end
|
147
|
-
|
148
136
|
# Return root uri
|
149
137
|
#
|
150
138
|
# @return [String]
|
@@ -178,6 +166,5 @@ end
|
|
178
166
|
|
179
167
|
require 'request/key'
|
180
168
|
require 'request/rack'
|
181
|
-
require 'request/routed'
|
182
169
|
require 'request/method'
|
183
170
|
require 'request/protocol'
|
data/lib/request/rack.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
class Request
|
2
2
|
# Rack request
|
3
3
|
class Rack < self
|
4
|
-
include Concord::Public.new(:rack_env)
|
5
4
|
|
6
5
|
SERVER_PORT = Key.new('SERVER_PORT')
|
7
6
|
REQUEST_METHOD = Key.new('REQUEST_METHOD')
|
@@ -9,6 +8,29 @@ class Request
|
|
9
8
|
IF_MODIFIED_SINCE = Key.new('HTTP_IF_MODIFIED_SINCE')
|
10
9
|
CONTENT_LENGTH = Key.new('CONTENT_LENGTH')
|
11
10
|
|
11
|
+
# Error raised when an invalid rack env key is accessed
|
12
|
+
InvalidKeyError = Class.new(RuntimeError)
|
13
|
+
|
14
|
+
# Initialize object
|
15
|
+
#
|
16
|
+
# @param [Hash] rack_env
|
17
|
+
#
|
18
|
+
# @return [undefined]
|
19
|
+
#
|
20
|
+
# @api private
|
21
|
+
#
|
22
|
+
def initialize(rack_env)
|
23
|
+
@rack_env = rack_env
|
24
|
+
end
|
25
|
+
|
26
|
+
# Return rack env
|
27
|
+
#
|
28
|
+
# @return [Hash]
|
29
|
+
#
|
30
|
+
# @api private
|
31
|
+
#
|
32
|
+
attr_reader :rack_env
|
33
|
+
|
12
34
|
# Declare accessor
|
13
35
|
#
|
14
36
|
# @param [Symbol] name
|
@@ -18,11 +40,12 @@ class Request
|
|
18
40
|
#
|
19
41
|
# @api private
|
20
42
|
#
|
21
|
-
def self.accessor(name, key)
|
43
|
+
def self.accessor(name, key, *args)
|
22
44
|
define_method(name) do
|
23
|
-
access(key)
|
45
|
+
access(key, *args)
|
24
46
|
end
|
25
47
|
end
|
48
|
+
private_class_method :accessor
|
26
49
|
|
27
50
|
# Return http port
|
28
51
|
#
|
@@ -57,6 +80,8 @@ class Request
|
|
57
80
|
end
|
58
81
|
memoize :request_method
|
59
82
|
|
83
|
+
CONTENT_LENGTH_REGEXP = /\A[0-9]+\z/.freeze
|
84
|
+
|
60
85
|
# Return content length
|
61
86
|
#
|
62
87
|
# @return [Fixnum]
|
@@ -64,8 +89,17 @@ class Request
|
|
64
89
|
# @api private
|
65
90
|
#
|
66
91
|
def content_length
|
67
|
-
|
92
|
+
value = @rack_env.fetch(CONTENT_LENGTH) do
|
93
|
+
return 0
|
94
|
+
end
|
95
|
+
|
96
|
+
unless value =~ CONTENT_LENGTH_REGEXP
|
97
|
+
raise InvalidKeyError, 'invalid content length'
|
98
|
+
end
|
99
|
+
|
100
|
+
value.to_i
|
68
101
|
end
|
102
|
+
memoize :content_length
|
69
103
|
|
70
104
|
# Return query params
|
71
105
|
#
|
@@ -98,11 +132,11 @@ class Request
|
|
98
132
|
end
|
99
133
|
memoize :if_modified_since
|
100
134
|
|
101
|
-
accessor(:path_info, Key.new('PATH_INFO')
|
102
|
-
accessor(:host, Key.new('SERVER_NAME')
|
103
|
-
accessor(:query_string, Key.new('QUERY_STRING'))
|
104
|
-
accessor(:content_type, Key.new('CONTENT_TYPE'))
|
105
|
-
accessor(:body, Key.new('rack.input'))
|
135
|
+
accessor(:path_info, Key.new('PATH_INFO') )
|
136
|
+
accessor(:host, Key.new('SERVER_NAME') )
|
137
|
+
accessor(:query_string, Key.new('QUERY_STRING') )
|
138
|
+
accessor(:content_type, Key.new('CONTENT_TYPE'), nil)
|
139
|
+
accessor(:body, Key.new('rack.input') )
|
106
140
|
|
107
141
|
private
|
108
142
|
|
@@ -114,8 +148,9 @@ class Request
|
|
114
148
|
#
|
115
149
|
# @api private
|
116
150
|
#
|
117
|
-
def access(key)
|
118
|
-
@rack_env.fetch(key)
|
151
|
+
def access(key, *args)
|
152
|
+
@rack_env.fetch(key, *args)
|
119
153
|
end
|
120
|
-
|
121
|
-
end
|
154
|
+
|
155
|
+
end # Rack
|
156
|
+
end # Request
|
data/request.gemspec
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = 'request'
|
5
|
-
gem.version = '0.0.
|
5
|
+
gem.version = '0.0.4'
|
6
6
|
gem.authors = [ 'Markus Schirp' ]
|
7
|
-
gem.email = [ 'mbj@
|
7
|
+
gem.email = [ 'mbj@schirp-dso.com' ]
|
8
8
|
gem.description = 'HTTP request porofication'
|
9
9
|
gem.summary = gem.description
|
10
10
|
gem.homepage = 'https://github.com/mbj/response'
|
@@ -16,8 +16,8 @@ Gem::Specification.new do |gem|
|
|
16
16
|
|
17
17
|
gem.add_dependency('backports', [ '~> 3.0', '>= 3.0.3' ])
|
18
18
|
gem.add_dependency('concord', '~> 0.1.0')
|
19
|
-
gem.add_dependency('ice_nine', '~> 0.
|
20
|
-
gem.add_dependency('adamantium', '~> 0.0.
|
19
|
+
gem.add_dependency('ice_nine', '~> 0.8.0')
|
20
|
+
gem.add_dependency('adamantium', '~> 0.0.8')
|
21
21
|
gem.add_dependency('equalizer', '~> 0.0.5')
|
22
22
|
gem.add_dependency('abstract_type', '~> 0.0.5')
|
23
23
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
shared = proc do
|
2
2
|
let(:rack_key_value) { :Value }
|
3
3
|
|
4
4
|
let(:default_env) do
|
@@ -11,9 +11,13 @@ shared_examples_for 'a rack env accessor' do
|
|
11
11
|
}
|
12
12
|
end
|
13
13
|
|
14
|
-
let(:expected_value) { rack_key_value
|
14
|
+
let(:expected_value) { rack_key_value }
|
15
|
+
let(:env) { default_env.merge(rack_key => rack_key_value) }
|
16
|
+
let(:object) { described_class.new(env) }
|
17
|
+
end
|
15
18
|
|
16
|
-
|
19
|
+
shared_examples_for 'a rack env accessor' do
|
20
|
+
instance_eval(&shared)
|
17
21
|
|
18
22
|
it { should eql(expected_value) }
|
19
23
|
|
@@ -22,3 +26,11 @@ shared_examples_for 'a rack env accessor' do
|
|
22
26
|
env.frozen?.should be(false)
|
23
27
|
end
|
24
28
|
end
|
29
|
+
|
30
|
+
shared_examples_for 'an invalid rack env accessor' do
|
31
|
+
instance_eval(&shared)
|
32
|
+
|
33
|
+
it 'should raise error' do
|
34
|
+
expect { subject }.to raise_error(Request::Rack::InvalidKeyError, expected_message)
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Request::Protocol, '.get' do
|
4
|
+
let(:object) { described_class }
|
5
|
+
|
6
|
+
subject { object.get(input) }
|
7
|
+
|
8
|
+
context 'with "http"' do
|
9
|
+
let(:input) { 'http' }
|
10
|
+
it { should eql(Request::Protocol::HTTP) }
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'with "https"' do
|
14
|
+
let(:input) { 'https' }
|
15
|
+
it { should eql(Request::Protocol::HTTPS) }
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'with "ftp"' do
|
19
|
+
let(:input) { 'ftp' }
|
20
|
+
it 'should raise error' do
|
21
|
+
expect { subject }.to raise_error(KeyError, 'key not found: "ftp"')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Request::Rack, '#content_length' do
|
4
|
+
subject { object.content_length }
|
5
|
+
|
6
|
+
let(:rack_key) { 'CONTENT_LENGTH'}
|
7
|
+
|
8
|
+
context 'with decimal positive integer' do
|
9
|
+
it_should_behave_like 'a rack env accessor' do
|
10
|
+
|
11
|
+
let(:rack_key_value) { '10' }
|
12
|
+
let(:expected_value) { 10 }
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'with decimal negative integer' do
|
18
|
+
|
19
|
+
it_should_behave_like 'an invalid rack env accessor' do
|
20
|
+
|
21
|
+
let(:rack_key_value) { '-10' }
|
22
|
+
let(:expected_message) { 'invalid content length' }
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'other garbadge' do
|
28
|
+
|
29
|
+
it_should_behave_like 'an invalid rack env accessor' do
|
30
|
+
|
31
|
+
let(:rack_key_value) { '0asd2431' }
|
32
|
+
let(:expected_message) { 'invalid content length' }
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when CONTENT_LENGTH key is not present' do
|
38
|
+
|
39
|
+
let(:rack_key) { 'SOMETHING_OTHER' }
|
40
|
+
|
41
|
+
it_should_behave_like 'a rack env accessor' do
|
42
|
+
|
43
|
+
let(:expected_value) { 0 }
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Request::Rack, '#rack_env' do
|
4
|
-
let(:object) { described_class.new(rack_env) }
|
5
|
-
|
6
4
|
subject { object.rack_env }
|
7
5
|
|
6
|
+
let(:object) { described_class.new(rack_env) }
|
7
|
+
|
8
8
|
let(:rack_env) { mock('Rack Env') }
|
9
9
|
|
10
10
|
it { should be(rack_env) }
|
11
11
|
|
12
|
-
it_should_behave_like '
|
12
|
+
it_should_behave_like 'an idempotent method'
|
13
13
|
end
|
metadata
CHANGED
@@ -1,42 +1,38 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Markus Schirp
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: backports
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '3.0'
|
22
|
-
- -
|
20
|
+
- - '>='
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: 3.0.3
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
27
|
- - ~>
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: '3.0'
|
33
|
-
- -
|
30
|
+
- - '>='
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: 3.0.3
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: concord
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
37
|
- - ~>
|
42
38
|
- !ruby/object:Gem::Version
|
@@ -44,7 +40,6 @@ dependencies:
|
|
44
40
|
type: :runtime
|
45
41
|
prerelease: false
|
46
42
|
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
43
|
requirements:
|
49
44
|
- - ~>
|
50
45
|
- !ruby/object:Gem::Version
|
@@ -52,39 +47,34 @@ dependencies:
|
|
52
47
|
- !ruby/object:Gem::Dependency
|
53
48
|
name: ice_nine
|
54
49
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
51
|
- - ~>
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
53
|
+
version: 0.8.0
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
57
|
requirements:
|
65
58
|
- - ~>
|
66
59
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0.
|
60
|
+
version: 0.8.0
|
68
61
|
- !ruby/object:Gem::Dependency
|
69
62
|
name: adamantium
|
70
63
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
65
|
- - ~>
|
74
66
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.0.
|
67
|
+
version: 0.0.8
|
76
68
|
type: :runtime
|
77
69
|
prerelease: false
|
78
70
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
71
|
requirements:
|
81
72
|
- - ~>
|
82
73
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.0.
|
74
|
+
version: 0.0.8
|
84
75
|
- !ruby/object:Gem::Dependency
|
85
76
|
name: equalizer
|
86
77
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
78
|
requirements:
|
89
79
|
- - ~>
|
90
80
|
- !ruby/object:Gem::Version
|
@@ -92,7 +82,6 @@ dependencies:
|
|
92
82
|
type: :runtime
|
93
83
|
prerelease: false
|
94
84
|
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
85
|
requirements:
|
97
86
|
- - ~>
|
98
87
|
- !ruby/object:Gem::Version
|
@@ -100,7 +89,6 @@ dependencies:
|
|
100
89
|
- !ruby/object:Gem::Dependency
|
101
90
|
name: abstract_type
|
102
91
|
requirement: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
92
|
requirements:
|
105
93
|
- - ~>
|
106
94
|
- !ruby/object:Gem::Version
|
@@ -108,14 +96,13 @@ dependencies:
|
|
108
96
|
type: :runtime
|
109
97
|
prerelease: false
|
110
98
|
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
99
|
requirements:
|
113
100
|
- - ~>
|
114
101
|
- !ruby/object:Gem::Version
|
115
102
|
version: 0.0.5
|
116
103
|
description: HTTP request porofication
|
117
104
|
email:
|
118
|
-
- mbj@
|
105
|
+
- mbj@schirp-dso.com
|
119
106
|
executables: []
|
120
107
|
extensions: []
|
121
108
|
extra_rdoc_files:
|
@@ -123,6 +110,7 @@ extra_rdoc_files:
|
|
123
110
|
- README.md
|
124
111
|
- TODO
|
125
112
|
files:
|
113
|
+
- .circle.yml
|
126
114
|
- .gitignore
|
127
115
|
- .rspec
|
128
116
|
- .travis.yml
|
@@ -146,11 +134,12 @@ files:
|
|
146
134
|
- lib/request/method.rb
|
147
135
|
- lib/request/protocol.rb
|
148
136
|
- lib/request/rack.rb
|
149
|
-
- lib/request/routed.rb
|
150
137
|
- request.gemspec
|
151
138
|
- spec/shared/rack_env_accessor_behavior.rb
|
152
139
|
- spec/spec_helper.rb
|
153
140
|
- spec/unit/request/key/hash_spec.rb
|
141
|
+
- spec/unit/request/protocol/class_methods/get_spec.rb
|
142
|
+
- spec/unit/request/rack/content_length_spec.rb
|
154
143
|
- spec/unit/request/rack/host_spec.rb
|
155
144
|
- spec/unit/request/rack/if_modified_since_spec.rb
|
156
145
|
- spec/unit/request/rack/path_info_spec.rb
|
@@ -161,27 +150,26 @@ files:
|
|
161
150
|
- spec/unit/request/rack/request_method_spec.rb
|
162
151
|
homepage: https://github.com/mbj/response
|
163
152
|
licenses: []
|
153
|
+
metadata: {}
|
164
154
|
post_install_message:
|
165
155
|
rdoc_options: []
|
166
156
|
require_paths:
|
167
157
|
- lib
|
168
158
|
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
159
|
requirements:
|
171
|
-
- -
|
160
|
+
- - '>='
|
172
161
|
- !ruby/object:Gem::Version
|
173
162
|
version: '0'
|
174
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
-
none: false
|
176
164
|
requirements:
|
177
|
-
- -
|
165
|
+
- - '>='
|
178
166
|
- !ruby/object:Gem::Version
|
179
167
|
version: '0'
|
180
168
|
requirements: []
|
181
169
|
rubyforge_project:
|
182
|
-
rubygems_version:
|
170
|
+
rubygems_version: 2.0.2
|
183
171
|
signing_key:
|
184
|
-
specification_version:
|
172
|
+
specification_version: 4
|
185
173
|
summary: HTTP request porofication
|
186
174
|
test_files: []
|
187
175
|
has_rdoc:
|
data/lib/request/routed.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
class Request
|
2
|
-
# A routed request with routing params
|
3
|
-
#
|
4
|
-
# FIXME: I do not like this, need to come up with something much better!
|
5
|
-
#
|
6
|
-
# Violates LSP.
|
7
|
-
#
|
8
|
-
# Remove this once "Dispatch" class in Joy is ready.
|
9
|
-
#
|
10
|
-
class Routed < self
|
11
|
-
include Concord::Public.new(:request, :routing_params)
|
12
|
-
|
13
|
-
METHODS.each do |name|
|
14
|
-
define_method(name) do
|
15
|
-
@request.public_send(name)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|