rack-var-dump 0.1.2 → 0.1.3
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/.rspec +1 -0
- data/.travis.yml +5 -0
- data/{README.rdoc → README.md} +38 -21
- data/Rakefile +5 -0
- data/lib/rack/var_dump.rb +4 -5
- data/lib/rack/var_dump/version.rb +1 -1
- data/rack-var-dump.gemspec +5 -3
- data/spec/middleware_spec.rb +55 -0
- data/spec/object_spec.rb +11 -0
- data/spec/spec_helper.rb +25 -0
- metadata +68 -5
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
-fs --color
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,6 +1,12 @@
|
|
1
|
-
|
1
|
+
# Build Status
|
2
2
|
|
3
|
-
=
|
3
|
+
<img src="https://secure.travis-ci.org/daic-h/rack-var-dump.png"/>
|
4
|
+
|
5
|
+
# English
|
6
|
+
|
7
|
+
Writing now...
|
8
|
+
|
9
|
+
# Japanese
|
4
10
|
|
5
11
|
rack-var-dumpはphpのvar_dump()のようなデバッグ用のメソッドを提供します
|
6
12
|
|
@@ -10,52 +16,63 @@ Object Classにvar_dumpメソッドを提供し、レスポンスを返すまで
|
|
10
16
|
|
11
17
|
var_dumpの返り値は常にselfです
|
12
18
|
|
13
|
-
|
19
|
+
<img src="http://cdn-ak.f.st-hatena.com/images/fotolife/b/bunnyhop/20120127/20120127235528.png"/>
|
20
|
+
|
21
|
+
## Supported versions
|
14
22
|
|
15
23
|
* Ruby 1.8.7, 1.9.x
|
16
24
|
|
17
25
|
* Rackを利用しているアプリケーション全般 (rails, sinatra, padrino, etc...)
|
18
26
|
|
19
|
-
|
27
|
+
## Install
|
20
28
|
|
21
|
-
|
29
|
+
$ gem install rack-var-dump
|
22
30
|
|
23
|
-
|
31
|
+
### Rails
|
24
32
|
|
25
33
|
Gemfileに追加
|
26
|
-
|
34
|
+
|
35
|
+
gem 'rack-var-dump'
|
27
36
|
|
28
37
|
Bundle Install
|
29
|
-
% bundle install
|
30
38
|
|
31
|
-
|
39
|
+
% bundle install
|
40
|
+
|
41
|
+
### Rails3.x以上の場合
|
32
42
|
|
33
43
|
config/application.rb等でRails用に用意されている
|
34
|
-
|
44
|
+
|
45
|
+
require 'rails-var-dump'
|
46
|
+
|
35
47
|
をrequire
|
36
48
|
|
37
|
-
|
49
|
+
### その他Rackアプリケーション
|
38
50
|
|
39
51
|
rack/var_dumpをrequire
|
40
|
-
|
52
|
+
|
53
|
+
require 'rack/var_dump'
|
41
54
|
|
42
55
|
Rack::VarDumpミドルウェアをuse
|
43
|
-
use Rack::VarDump
|
44
56
|
|
45
|
-
|
57
|
+
use Rack::VarDump
|
58
|
+
|
59
|
+
## 使い方
|
46
60
|
|
47
61
|
rails-var-dumpもしくはrack/var_dumpをrequireしている場合、全てのオブジェクトに
|
48
|
-
|
62
|
+
|
63
|
+
var_dump(subject = nil)
|
64
|
+
|
49
65
|
が提供されています
|
50
66
|
|
51
|
-
|
52
|
-
|
53
|
-
|
67
|
+
### 例
|
68
|
+
|
69
|
+
@users = User.all.var_dump
|
70
|
+
@users.var_dump("user.all")
|
54
71
|
|
55
72
|
var_dumpの返り値は常にselfのため、チェーンが途切れずに使用できます
|
56
|
-
@first_name = User.find(3).var_dump('user.id(3)').first_name
|
57
73
|
|
74
|
+
@first_name = User.find(3).var_dump('user.id(3)').first_name
|
58
75
|
|
59
|
-
|
76
|
+
## Copyright
|
60
77
|
|
61
|
-
Copyright (c) 2012 Daichi Hirata. See LICENSE for details.
|
78
|
+
Copyright (c) 2012 Daichi Hirata. See LICENSE for details.
|
data/Rakefile
CHANGED
data/lib/rack/var_dump.rb
CHANGED
@@ -18,17 +18,16 @@ module Rack
|
|
18
18
|
|
19
19
|
def initialize(app)
|
20
20
|
@app = app
|
21
|
-
VarDump.reset!
|
22
21
|
end
|
23
22
|
|
24
23
|
def call(env)
|
25
24
|
request = Rack::Request.new(env)
|
26
25
|
status, headers, response = @app.call(env)
|
27
26
|
|
28
|
-
if
|
27
|
+
if headers["Content-Type"] =~ /^text\/html/ && !@@var_aggregates.empty?
|
29
28
|
body = ""
|
30
29
|
response.each {|org_body| body << org_body}
|
31
|
-
response = [apply(
|
30
|
+
response = [apply(body)] if body =~ /<body.*>/
|
32
31
|
headers["Content-Length"] = response.join.bytesize.to_s
|
33
32
|
end
|
34
33
|
VarDump.reset!
|
@@ -36,7 +35,7 @@ module Rack
|
|
36
35
|
end
|
37
36
|
|
38
37
|
private
|
39
|
-
def apply(
|
38
|
+
def apply(body)
|
40
39
|
html = '<div id="var_dump" style="display:block">'
|
41
40
|
html << '<pre style="background-color:#eee;padding:10px;font-size:11px;white-space:pre-wrap;color:black!important;">'
|
42
41
|
@@var_aggregates.each_with_index do |info, n|
|
@@ -45,7 +44,7 @@ module Rack
|
|
45
44
|
html << "\n\n"
|
46
45
|
end
|
47
46
|
html << "</pre></div>"
|
48
|
-
|
47
|
+
body.sub(/<body.*>/, '\&' + html)
|
49
48
|
end
|
50
49
|
end
|
51
50
|
end
|
data/rack-var-dump.gemspec
CHANGED
@@ -16,7 +16,9 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
s.add_development_dependency 'rake', '>= 0.9.2.2'
|
20
|
+
s.add_development_dependency 'rdoc', '>= 3.11'
|
21
|
+
s.add_development_dependency "rack", '>= 1.3.5'
|
22
|
+
s.add_development_dependency 'rack-test', '>= 0.5.3'
|
23
|
+
s.add_development_dependency 'rspec', '>= 2.7.0'
|
22
24
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe 'VarDump' do
|
4
|
+
include Rack::Test::Methods
|
5
|
+
|
6
|
+
let(:app) { Rack::VarDump.new(TestRackApp.new) }
|
7
|
+
|
8
|
+
describe "when var_dump is performed" do
|
9
|
+
before { 'sample-text'.var_dump }
|
10
|
+
let(:insert_html) do
|
11
|
+
%Q[var_dump:0 \n"sample-text"\n\n</pre></div>]
|
12
|
+
end
|
13
|
+
|
14
|
+
it "it is inserted when a status code is 200." do
|
15
|
+
get '/'
|
16
|
+
last_response.body.should include(insert_html)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "it is not inserted when a contents type is not text/html. " do
|
20
|
+
get '/image.jpg'
|
21
|
+
last_response.body.should_not include(insert_html)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "when an argument is given" do
|
26
|
+
before { 'sample-text'.var_dump('Rspec:String') }
|
27
|
+
let(:insert_html) do
|
28
|
+
%Q[var_dump:0 Rspec:String\n"sample-text"\n\n</pre></div>]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "It displays with subject." do
|
32
|
+
get '/'
|
33
|
+
last_response.body.should include(insert_html)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "when the two or more sets value is carried out" do
|
38
|
+
before{'sample-text'.var_dump; 'sample-text-2'.var_dump('Rspec:String2')}
|
39
|
+
let(:insert_html) do
|
40
|
+
%Q[var_dump:0 \n"sample-text"\n\nvar_dump:1 Rspec:String2\n"sample-text-2"\n\n</pre></div>]
|
41
|
+
end
|
42
|
+
|
43
|
+
it "more than one are outputted." do
|
44
|
+
get '/'
|
45
|
+
last_response.body.should include(insert_html)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "not insert responses" do
|
50
|
+
it "nothing is outputted when the value is not set to var_dumo." do
|
51
|
+
get '/'
|
52
|
+
last_response.body.should eql(DummyBody)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/spec/object_spec.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe 'Object' do
|
4
|
+
it "instance should resond to var_dump" do
|
5
|
+
Object.new.should respond_to('var_dump')
|
6
|
+
end
|
7
|
+
|
8
|
+
it "class should resond to var_dump" do
|
9
|
+
Object.should respond_to('var_dump')
|
10
|
+
end
|
11
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$:.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
%w(rubygems rack rack/test rack/var_dump rspec).each {|f| require f}
|
5
|
+
|
6
|
+
DummyBody = <<-EOH
|
7
|
+
<html>
|
8
|
+
<head></head>
|
9
|
+
<body>
|
10
|
+
<p>Dummy Rack!</p>
|
11
|
+
</body>
|
12
|
+
</html>
|
13
|
+
EOH
|
14
|
+
|
15
|
+
class TestRackApp
|
16
|
+
def call(env)
|
17
|
+
case env['PATH_INFO']
|
18
|
+
when '/'
|
19
|
+
[200, {"Content-Type" => "text/html"}, [DummyBody]]
|
20
|
+
when '/image.jpg'
|
21
|
+
[200, {"Content-Type" => "image/ipg"}, [DummyBody]]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-var-dump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,63 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-01-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &70325150464780 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.9.2.2
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70325150464780
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rdoc
|
27
|
+
requirement: &70325150463780 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.11'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70325150463780
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rack
|
38
|
+
requirement: &70325150462780 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.3.5
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70325150462780
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rack-test
|
49
|
+
requirement: &70325150462020 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.5.3
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70325150462020
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &70325150461480 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 2.7.0
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70325150461480
|
14
69
|
description: rack-var-dump provides a method for debugging like var_dump() of php.
|
15
70
|
email:
|
16
71
|
- bunny.hop.md@gmail.com
|
@@ -19,9 +74,11 @@ extensions: []
|
|
19
74
|
extra_rdoc_files: []
|
20
75
|
files:
|
21
76
|
- .gitignore
|
77
|
+
- .rspec
|
78
|
+
- .travis.yml
|
22
79
|
- Gemfile
|
23
80
|
- LICENSE
|
24
|
-
- README.
|
81
|
+
- README.md
|
25
82
|
- Rakefile
|
26
83
|
- lib/rack/railtie.rb
|
27
84
|
- lib/rack/var_dump.rb
|
@@ -30,6 +87,9 @@ files:
|
|
30
87
|
- lib/rails-var-dump.rb
|
31
88
|
- lib/rails_var_dump.rb
|
32
89
|
- rack-var-dump.gemspec
|
90
|
+
- spec/middleware_spec.rb
|
91
|
+
- spec/object_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
33
93
|
homepage: ''
|
34
94
|
licenses: []
|
35
95
|
post_install_message:
|
@@ -54,5 +114,8 @@ rubygems_version: 1.8.10
|
|
54
114
|
signing_key:
|
55
115
|
specification_version: 3
|
56
116
|
summary: rack-var-dump provides a method for debugging like var_dump() of php.
|
57
|
-
test_files:
|
117
|
+
test_files:
|
118
|
+
- spec/middleware_spec.rb
|
119
|
+
- spec/object_spec.rb
|
120
|
+
- spec/spec_helper.rb
|
58
121
|
has_rdoc:
|