rack-var-dump 0.1.3 → 1.0.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/README.md CHANGED
@@ -10,13 +10,13 @@ Writing now...
10
10
 
11
11
  rack-var-dumpはphpのvar_dump()のようなデバッグ用のメソッドを提供します
12
12
 
13
- Object Classにvar_dumpメソッドを提供し、レスポンスを返すまでにModel,Controller,View,
13
+ Objectにvar_dumpメソッドを提供し、Rackがレスポンスを返すまでにModel,Controller,View,
14
14
 
15
- その他で実行されたすべてのレシーバーをviewに自動的に出力します
15
+ その他コンテキストで実行されたすべてのレシーバーをviewに自動的に出力します
16
16
 
17
- var_dumpの返り値は常にselfです
17
+ 出力には michaeldv / awesome_print を使用しています。
18
18
 
19
- <img src="http://cdn-ak.f.st-hatena.com/images/fotolife/b/bunnyhop/20120127/20120127235528.png"/>
19
+ <img src="http://cdn-ak.f.st-hatena.com/images/fotolife/b/bunnyhop/20120208/20120208182805.png"/>
20
20
 
21
21
  ## Supported versions
22
22
 
@@ -1,19 +1,29 @@
1
1
  require "rack/utils"
2
- require "rack/var_dump/object"
3
- require "rack/var_dump/version"
2
+ require 'rack/var_dump/kernel'
3
+ require 'rack/var_dump/version'
4
+ require 'rack/var_dump/awesome_print'
4
5
 
5
6
  module Rack
6
7
  class VarDump
7
- include Object
8
-
9
8
  @@var_aggregates = []
10
9
 
10
+ def self.reset!
11
+ @@var_aggregates = []
12
+ end
13
+
11
14
  def self.var_dump(var, subject)
12
- @@var_aggregates << {:var => var.inspect, :subject => subject}
15
+ @@var_aggregates <<
16
+ { :var => ai(var, :html => true), :subject => subject }
13
17
  end
14
18
 
15
- def self.reset!
16
- @@var_aggregates = []
19
+ def self.ai(var, options = {})
20
+ ap = AwesomePrint::Inspector.new(options)
21
+ ap.instance_eval do
22
+ formatter = AwesomePrint::VarDump.new(self)
23
+ instance_variable_set(:@formatter, formatter)
24
+ end
25
+
26
+ ap.awesome(var)
17
27
  end
18
28
 
19
29
  def initialize(app)
@@ -30,21 +40,23 @@ module Rack
30
40
  response = [apply(body)] if body =~ /<body.*>/
31
41
  headers["Content-Length"] = response.join.bytesize.to_s
32
42
  end
43
+
33
44
  VarDump.reset!
34
45
  [status, headers, response]
35
46
  end
36
47
 
37
48
  private
38
- def apply(body)
39
- html = '<div id="var_dump" style="display:block">'
40
- html << '<pre style="background-color:#eee;padding:10px;font-size:11px;white-space:pre-wrap;color:black!important;">'
41
- @@var_aggregates.each_with_index do |info, n|
42
- html << "var_dump:#{n} #{info[:subject]}\n"
43
- html << Rack::Utils.escape_html(info[:var])
44
- html << "\n\n"
49
+ def apply(body)
50
+ html = '<div id="var_dump" style="display:block">'
51
+ html << '<pre style="background-color:#eee;padding:10px;font-size:11px;white-space:pre-wrap;color:black!important;">'
52
+ @@var_aggregates.each_with_index do |info, n|
53
+ html << "var_dump:#{n} #{info[:subject]}\n"
54
+ html << info[:var]
55
+ html << "\n\n"
56
+ end
57
+ html << "</pre></div>"
58
+
59
+ body.sub(/<body.*>/, '\&' + html)
45
60
  end
46
- html << "</pre></div>"
47
- body.sub(/<body.*>/, '\&' + html)
48
- end
49
61
  end
50
62
  end
@@ -0,0 +1,2 @@
1
+ require 'ap'
2
+ require 'rack/var_dump/awesome_print/ext/var_dump'
@@ -0,0 +1,14 @@
1
+ module AwesomePrint
2
+ class VarDump < Formatter
3
+ def format(object, type = nil)
4
+ core_class = cast(object, type)
5
+
6
+ awesome = if core_class != :self
7
+ send(:"awesome_#{core_class}", object) # Core formatters.
8
+ else
9
+ awesome_self(object, type) # Catch all that falls back to object.inspect.
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,21 @@
1
+ module AwesomePrint
2
+ module VarDump
3
+ def self.included(base)
4
+ base.send :alias_method, :format_without_var_dump, :format
5
+ base.send :alias_method, :format, :format_with_var_dump
6
+ end
7
+
8
+ def format_with_var_dump(object, type = nil)
9
+ core_class = cast(object, type)
10
+ awesome = if core_class != :self
11
+ send(:"awesome_#{core_class}", object)
12
+ else
13
+ awesome_self(object, type)
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ AwesomePrint::Formatter.send(:include, AwesomePrint::VarDump)
20
+
21
+
@@ -0,0 +1,6 @@
1
+ module Kernel
2
+ def var_dump(subject = nil)
3
+ Rack::VarDump.var_dump(self, subject)
4
+ self
5
+ end
6
+ end
@@ -1,17 +1,7 @@
1
- module Rack
2
- class VarDump
3
- module Object
4
- def self.included(obj)
5
- ::Object.send(:include, Method)
6
- ::Object.extend(Method)
7
- end
8
- end
1
+ module Object
2
+ def var_dump(subject = nil)
3
+ Rack::VarDump.var_dump(self, subject)
9
4
 
10
- module Method
11
- def var_dump(subject = nil)
12
- Rack::VarDump.var_dump(self, subject)
13
- self
14
- end
15
- end
5
+ self
16
6
  end
17
7
  end
@@ -0,0 +1,12 @@
1
+ require 'rails'
2
+ require 'rack/var_dump'
3
+
4
+ module Rack
5
+ class VarDump
6
+ class Railtie < Rails::Railtie
7
+ initializer "rack_var_dump.use_middleware" do |app|
8
+ app.middleware.use ::Rack::VarDump if ENV['RAILS_ENV'] == "development"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class VarDump
3
- VERSION = "0.1.3"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -1 +1 @@
1
- require 'rack/railtie' if defined?(Rails)
1
+ require 'rack/var_dump/railtie' if defined?(Rails)
@@ -1 +1 @@
1
- require 'rack/railtie' if defined?(Rails)
1
+ require 'rails-var-dump'
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Dach_h"]
9
9
  s.email = ["bunny.hop.md@gmail.com"]
10
10
  s.homepage = ""
11
- s.summary = %q{rack-var-dump provides a method for debugging like var_dump() of php.}
11
+ s.summary = %q{provides a method for debugging like var_dump() of php.}
12
12
  s.description = s.summary
13
13
  s.rubyforge_project = "rack-var-dump"
14
14
  s.files = `git ls-files`.split("\n")
@@ -16,8 +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
+ s.add_dependency 'awesome_print', '= 1.0.2'
20
+
19
21
  s.add_development_dependency 'rake', '>= 0.9.2.2'
20
- s.add_development_dependency 'rdoc', '>= 3.11'
21
22
  s.add_development_dependency "rack", '>= 1.3.5'
22
23
  s.add_development_dependency 'rack-test', '>= 0.5.3'
23
24
  s.add_development_dependency 'rspec', '>= 2.7.0'
@@ -8,7 +8,7 @@ describe 'VarDump' do
8
8
  describe "when var_dump is performed" do
9
9
  before { 'sample-text'.var_dump }
10
10
  let(:insert_html) do
11
- %Q[var_dump:0 \n&quot;sample-text&quot;\n\n</pre></div>]
11
+ %Q(var_dump:0 \n<kbd style=\"color:brown\">&quot;sample-text&quot;</kbd>)
12
12
  end
13
13
 
14
14
  it "it is inserted when a status code is 200." do
@@ -25,7 +25,7 @@ describe 'VarDump' do
25
25
  describe "when an argument is given" do
26
26
  before { 'sample-text'.var_dump('Rspec:String') }
27
27
  let(:insert_html) do
28
- %Q[var_dump:0 Rspec:String\n&quot;sample-text&quot;\n\n</pre></div>]
28
+ %Q(var_dump:0 Rspec:String\n<kbd style=\"color:brown\">&quot;sample-text&quot;</kbd>)
29
29
  end
30
30
 
31
31
  it "It displays with subject." do
@@ -37,7 +37,7 @@ describe 'VarDump' do
37
37
  describe "when the two or more sets value is carried out" do
38
38
  before{'sample-text'.var_dump; 'sample-text-2'.var_dump('Rspec:String2')}
39
39
  let(:insert_html) do
40
- %Q[var_dump:0 \n&quot;sample-text&quot;\n\nvar_dump:1 Rspec:String2\n&quot;sample-text-2&quot;\n\n</pre></div>]
40
+ %Q(var_dump:0 \n<kbd style=\"color:brown\">&quot;sample-text&quot;</kbd>\n\nvar_dump:1 Rspec:String2\n<kbd style=\"color:brown\">&quot;sample-text-2&quot;</kbd>)
41
41
  end
42
42
 
43
43
  it "more than one are outputted." do
@@ -47,7 +47,7 @@ describe 'VarDump' do
47
47
  end
48
48
 
49
49
  describe "not insert responses" do
50
- it "nothing is outputted when the value is not set to var_dumo." do
50
+ it "nothing is outputted when the value is not set to var_dump." do
51
51
  get '/'
52
52
  last_response.body.should eql(DummyBody)
53
53
  end
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.3
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,33 +9,33 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-29 00:00:00.000000000Z
12
+ date: 2012-02-08 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: &70325150464780 !ruby/object:Gem::Requirement
15
+ name: awesome_print
16
+ requirement: &2158675240 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - =
20
20
  - !ruby/object:Gem::Version
21
- version: 0.9.2.2
22
- type: :development
21
+ version: 1.0.2
22
+ type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70325150464780
24
+ version_requirements: *2158675240
25
25
  - !ruby/object:Gem::Dependency
26
- name: rdoc
27
- requirement: &70325150463780 !ruby/object:Gem::Requirement
26
+ name: rake
27
+ requirement: &2158674720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: '3.11'
32
+ version: 0.9.2.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70325150463780
35
+ version_requirements: *2158674720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rack
38
- requirement: &70325150462780 !ruby/object:Gem::Requirement
38
+ requirement: &2158674180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.5
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70325150462780
46
+ version_requirements: *2158674180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rack-test
49
- requirement: &70325150462020 !ruby/object:Gem::Requirement
49
+ requirement: &2158673640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.5.3
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70325150462020
57
+ version_requirements: *2158673640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &70325150461480 !ruby/object:Gem::Requirement
60
+ requirement: &2158673180 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,8 +65,8 @@ dependencies:
65
65
  version: 2.7.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70325150461480
69
- description: rack-var-dump provides a method for debugging like var_dump() of php.
68
+ version_requirements: *2158673180
69
+ description: provides a method for debugging like var_dump() of php.
70
70
  email:
71
71
  - bunny.hop.md@gmail.com
72
72
  executables: []
@@ -80,9 +80,13 @@ files:
80
80
  - LICENSE
81
81
  - README.md
82
82
  - Rakefile
83
- - lib/rack/railtie.rb
84
83
  - lib/rack/var_dump.rb
84
+ - lib/rack/var_dump/awesome_print.rb
85
+ - lib/rack/var_dump/awesome_print/ext/var_dump.rb
86
+ - lib/rack/var_dump/awesome_print/ext/var_dump.rb.old
87
+ - lib/rack/var_dump/kernel.rb
85
88
  - lib/rack/var_dump/object.rb
89
+ - lib/rack/var_dump/railtie.rb
86
90
  - lib/rack/var_dump/version.rb
87
91
  - lib/rails-var-dump.rb
88
92
  - lib/rails_var_dump.rb
@@ -113,7 +117,7 @@ rubyforge_project: rack-var-dump
113
117
  rubygems_version: 1.8.10
114
118
  signing_key:
115
119
  specification_version: 3
116
- summary: rack-var-dump provides a method for debugging like var_dump() of php.
120
+ summary: provides a method for debugging like var_dump() of php.
117
121
  test_files:
118
122
  - spec/middleware_spec.rb
119
123
  - spec/object_spec.rb
@@ -1,16 +0,0 @@
1
- require 'rails'
2
- require 'rack/var_dump'
3
- require 'rack/var_dump/object'
4
- require 'rack/var_dump/version'
5
-
6
- module Rack
7
- class VarDump
8
- include Object
9
- end
10
-
11
- class Railtie < Rails::Railtie
12
- initializer "rack_var_dump.use_middleware" do |app|
13
- app.middleware.use Rack::VarDump if ENV['RAILS_ENV'] == "development"
14
- end
15
- end
16
- end