hi 1.1.0 → 1.1.1
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/CHANGELOG.md +6 -1
- data/README.md +8 -38
- data/hi.gemspec +1 -0
- data/lib/hi/request.rb +32 -15
- data/lib/hi/version.rb +1 -1
- data/screenshot.png +0 -0
- data/spec/hi/request_spec.rb +10 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90b9c09d4718077fca4fc2f656da9becf7f54517
|
4
|
+
data.tar.gz: 4053b75715a16a474269a6ed608dd679794e03e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ecb8367a1625838354d137a540def00a06e699f048ff98fc1f4f610525152b8cfabb37a697a4970a1b937cf363feb39beec14ee59263ec0dd7e1c7c699178961
|
7
|
+
data.tar.gz: d1a587364e141c112de9daa65d98cb763b9c83252ec3b2cf785e0d680430bcdafcd3d1193adf9b039a782fd2df2a74ad8064a4298cfbae218aa03759c05d16f0
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
##v1.1.1
|
4
|
+
*2013-12-28*
|
5
|
+
|
6
|
+
- [#3](https://github.com/chrishunt/hi/pull/3) Delegate all request methods to the request
|
7
|
+
|
3
8
|
##v1.1.0
|
4
9
|
*2013-12-27*
|
5
10
|
|
6
|
-
- #1 Show request headers
|
11
|
+
- [#1](https://github.com/chrishunt/hi/pull/1) Show request headers
|
7
12
|
|
8
13
|
##v1.0.0
|
9
14
|
*2013-12-27*
|
data/README.md
CHANGED
@@ -6,19 +6,17 @@
|
|
6
6
|
|
7
7
|
### hi, I'm here to debug your HTTP
|
8
8
|
|
9
|
-
|
9
|
+
[chrishunt.co/hi](http://chrishunt.co/hi/)
|
10
10
|
|
11
|
-
|
12
|
-
reply with 'hi'. Since all requests are dumped to the console, it's probably
|
13
|
-
most useful for debugging.
|
11
|
+
## Usage
|
14
12
|
|
15
|
-
|
13
|
+
Hi, I'm here to help you debug your HTTP. To get started, install me.
|
16
14
|
|
17
15
|
```bash
|
18
16
|
$ gem install hi
|
19
17
|
```
|
20
18
|
|
21
|
-
|
19
|
+
Now start me up:
|
22
20
|
|
23
21
|
```bash
|
24
22
|
$ hi
|
@@ -27,7 +25,7 @@ $ hi
|
|
27
25
|
>> Listening on 0.0.0.0:3000, CTRL+C to stop
|
28
26
|
```
|
29
27
|
|
30
|
-
|
28
|
+
If you don't like my default port, try something else:
|
31
29
|
|
32
30
|
```bash
|
33
31
|
$ hi 1234
|
@@ -36,7 +34,8 @@ $ hi 1234
|
|
36
34
|
>> Listening on 0.0.0.0:1234, CTRL+C to stop
|
37
35
|
```
|
38
36
|
|
39
|
-
|
37
|
+
Let's start debugging! Just send a request my way and I'll tell you everything
|
38
|
+
I know about it.
|
40
39
|
|
41
40
|
```bash
|
42
41
|
$ curl localhost:3000/foo/bar\?message=hello
|
@@ -65,36 +64,7 @@ $ curl localhost:3000/foo/bar\?message=hello
|
|
65
64
|
}
|
66
65
|
```
|
67
66
|
|
68
|
-
|
69
|
-
|
70
|
-
```bash
|
71
|
-
$ curl -d 'message=hello' localhost:3000
|
72
|
-
|
73
|
-
"POST http://localhost:3000/ (2013-12-27 14:18:59 -0800)"
|
74
|
-
{
|
75
|
-
:host => "localhost",
|
76
|
-
:ip => "127.0.0.1",
|
77
|
-
:port => 3000,
|
78
|
-
:request_method => "POST",
|
79
|
-
:scheme => "http",
|
80
|
-
:url => "http://localhost:3000/",
|
81
|
-
:query_string => "",
|
82
|
-
:body => "message=hello",
|
83
|
-
:content_length => "13",
|
84
|
-
:media_type => "application/x-www-form-urlencoded",
|
85
|
-
:referer => nil,
|
86
|
-
:user_agent => "curl/7.30.0",
|
87
|
-
:xhr => false,
|
88
|
-
:headers => {
|
89
|
-
"HTTP_VERSION" => "HTTP/1.1",
|
90
|
-
"HTTP_USER_AGENT" => "curl/7.30.0",
|
91
|
-
"HTTP_HOST" => "localhost:3000",
|
92
|
-
"HTTP_ACCEPT" => "*/*"
|
93
|
-
}
|
94
|
-
}
|
95
|
-
```
|
96
|
-
|
97
|
-
Or an xhr request:
|
67
|
+
The fancier your request, the better.
|
98
68
|
|
99
69
|
```bash
|
100
70
|
$ curl -H 'X-Requested-With: XMLHttpRequest' -d "message=hello" localhost:3000
|
data/hi.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'thin', '~> 1.5.1'
|
23
23
|
|
24
24
|
spec.add_development_dependency 'coveralls', '~> 0.7.0'
|
25
|
+
spec.add_development_dependency 'pry', '~> 0.9.12.4'
|
25
26
|
spec.add_development_dependency 'rack-test', '~> 0.6.2'
|
26
27
|
spec.add_development_dependency 'rake', '~> 10.1.1'
|
27
28
|
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
data/lib/hi/request.rb
CHANGED
@@ -2,6 +2,25 @@ require 'rack/request'
|
|
2
2
|
|
3
3
|
module Hi
|
4
4
|
class Request
|
5
|
+
extend Forwardable
|
6
|
+
|
7
|
+
ATTRIBUTES = [
|
8
|
+
:host,
|
9
|
+
:ip,
|
10
|
+
:port,
|
11
|
+
:request_method,
|
12
|
+
:scheme,
|
13
|
+
:url,
|
14
|
+
:query_string,
|
15
|
+
:body,
|
16
|
+
:content_length,
|
17
|
+
:media_type,
|
18
|
+
:referer,
|
19
|
+
:user_agent,
|
20
|
+
:xhr?
|
21
|
+
]
|
22
|
+
|
23
|
+
def_delegators :request, *ATTRIBUTES
|
5
24
|
attr_reader :env, :request
|
6
25
|
|
7
26
|
def initialize(env)
|
@@ -13,23 +32,21 @@ module Hi
|
|
13
32
|
env.select { |key| key.start_with? 'HTTP_' }
|
14
33
|
end
|
15
34
|
|
35
|
+
def body_string
|
36
|
+
body.string if body
|
37
|
+
end
|
38
|
+
|
16
39
|
def to_h
|
17
|
-
{
|
18
|
-
|
19
|
-
ip: request.ip,
|
20
|
-
port: request.port,
|
21
|
-
request_method: request.request_method,
|
22
|
-
scheme: request.scheme,
|
23
|
-
url: request.url,
|
24
|
-
query_string: request.query_string,
|
25
|
-
body: (request.body.string if request.body),
|
26
|
-
content_length: request.content_length,
|
27
|
-
media_type: request.media_type,
|
28
|
-
referer: request.referer,
|
29
|
-
user_agent: request.user_agent,
|
30
|
-
xhr: request.xhr?,
|
40
|
+
request_hash.merge({
|
41
|
+
body: body_string,
|
31
42
|
headers: headers,
|
32
|
-
}
|
43
|
+
})
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def request_hash
|
49
|
+
ATTRIBUTES.inject({}) { |hash, attr| hash[attr] = send(attr); hash }
|
33
50
|
end
|
34
51
|
end
|
35
52
|
end
|
data/lib/hi/version.rb
CHANGED
data/screenshot.png
CHANGED
Binary file
|
data/spec/hi/request_spec.rb
CHANGED
@@ -25,4 +25,14 @@ describe Hi::Request do
|
|
25
25
|
expect(request.headers).to eq headers
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
describe '#host' do
|
30
|
+
it 'returns the host passed in the environment' do
|
31
|
+
host = 'amazing.dev'
|
32
|
+
|
33
|
+
request = described_class.new('HTTP_HOST' => host)
|
34
|
+
|
35
|
+
expect(request.host).to eq host
|
36
|
+
end
|
37
|
+
end
|
28
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Hunt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.7.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.12.4
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.9.12.4
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rack-test
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|