ruby_snooper 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd42baba15be0d8b9b48d03dfe49058a3172edb1b1998df2f802166d18473b54
4
- data.tar.gz: 841a1a2597b9f3261bbd473bee48f3ebf45006e574db7ed70bfd8e57c70f12fc
3
+ metadata.gz: 88b67b2dff4cab009e6b5d986229e1abf0abef2b6661cb37f56fb6c86a1aa2cc
4
+ data.tar.gz: 72d60cbae216efeaf2ae1055067ee6216210e4afb7129f3f005458be945f8b1a
5
5
  SHA512:
6
- metadata.gz: 84817cc4300f4e3e61bb3149a4e0f72ae74483e409755e3030d9b00c8429b1df5730a9607dc835a4fa312b276a9a07f44051b1faa3f19df722ecf3ba3c2a3dc6
7
- data.tar.gz: 0f6583fd2e7ac7c7dfd263cd63bf644ca52c1df4f814e037299b231166054976995e1d69125e2af0f750b037a78a91d3ed21ffc23f10a24d75deb65fe25d6a5c
6
+ metadata.gz: eb28b92ba9f16814a73a570c1b293a6a62e2aa683c8470a5cd5b67fe8e8140f9995482b885e23facbe5c344b4a8d7d6c265fdeb4c25c38857646703d16719b2e
7
+ data.tar.gz: 0da3d085ffdcb8ac7d5e786575c1e94d183f5894bbb1977e5363a4cac26fbca326e3d9f39fcfc22a012debbcff41f3613cd0ecfbbfbcb1f966cfe6a53a526138
data/Gemfile.lock CHANGED
@@ -1,11 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby_snooper (0.1.1)
4
+ ruby_snooper (0.1.2)
5
+ coderay (~> 1.1.2)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
10
+ coderay (1.1.2)
9
11
  diff-lcs (1.3)
10
12
  rake (10.5.0)
11
13
  rspec (3.8.0)
@@ -1,7 +1,9 @@
1
+ require 'coderay'
2
+
1
3
  module RubySnooper
2
4
  class TraceWriter
3
- def initialize(method_names, caller_path)
4
- @method_names = method_names
5
+ def initialize(method_name, caller_path)
6
+ @method_name = method_name
5
7
  @caller_path = caller_path
6
8
  @source_cache = {}
7
9
  @lines = []
@@ -19,7 +21,7 @@ module RubySnooper
19
21
 
20
22
  def trace_point
21
23
  @trace_point ||= TracePoint.new(:call, :line, :return) do |tp|
22
- next unless @method_names.include?(tp.method_id)
24
+ next if @method_name != tp.method_id
23
25
  next if tp.path != @caller_path
24
26
 
25
27
  local_variables = tp.binding.local_variables.map do |name|
@@ -76,7 +78,7 @@ module RubySnooper
76
78
  def print
77
79
  STDERR.puts "From #{@file_path}" if @event == :call
78
80
  print_variables
79
- STDERR.puts "#{Time.now.strftime("%T,%L")} #{@event} #{number} #{code}"
81
+ STDERR.puts "#{Time.now.strftime("%T,%L")} #{@event} #{number.to_s.rjust(4)} #{code_colorized(code)}"
80
82
  end
81
83
 
82
84
  private
@@ -84,10 +86,10 @@ module RubySnooper
84
86
  def print_variables
85
87
  case @event
86
88
  when :call
87
- STDERR.puts "Starting var #{variables_str(@local_variables)}"
89
+ STDERR.puts colorized("Starting var #{variables_str(@local_variables)}")
88
90
  when :line
89
- STDERR.puts "New var #{variables_str(@new_variables)}" if @new_variables.count > 0
90
- STDERR.puts "Modified var #{variables_str(@modified_variables)}" if @modified_variables.count > 0
91
+ STDERR.puts colorized("New var #{variables_str(@new_variables)}") if @new_variables.count > 0
92
+ STDERR.puts colorized("Modified var #{variables_str(@modified_variables)}") if @modified_variables.count > 0
91
93
  end
92
94
  end
93
95
 
@@ -96,6 +98,14 @@ module RubySnooper
96
98
  "#{key} = #{value}"
97
99
  end.join(', ')
98
100
  end
101
+
102
+ def code_colorized(str)
103
+ ::CodeRay.scan(str, :ruby).term
104
+ end
105
+
106
+ def colorized(str)
107
+ "\e[0;31m#{str}\e[0m"
108
+ end
99
109
  end
100
110
 
101
111
  class Return
@@ -112,8 +122,16 @@ module RubySnooper
112
122
  end
113
123
 
114
124
  def print
115
- STDERR.puts "#{Time.now.strftime("%T,%L")} #{@event} #{@number} #{@code}"
116
- STDERR.puts "Return value #{@return_value}"
125
+ STDERR.puts "#{Time.now.strftime("%T,%L")} #{@event} #{@number.to_s.rjust(4)} #{code_colorized(@code)}"
126
+ STDERR.puts colorized("Return value #{@return_value}")
127
+ end
128
+
129
+ def code_colorized(str)
130
+ ::CodeRay.scan(str, :ruby).term
131
+ end
132
+
133
+ def colorized(str)
134
+ "\e[0;31m#{str}\e[0m"
117
135
  end
118
136
  end
119
137
  end
@@ -1,3 +1,3 @@
1
1
  module RubySnooper
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/ruby_snooper.rb CHANGED
@@ -24,7 +24,7 @@ module RubySnooper
24
24
  method_names.each do |method_name|
25
25
  define_method(method_name) do |*args, &block|
26
26
  trace_writer = TraceWriter.new(
27
- method_names,
27
+ method_name,
28
28
  caller_path,
29
29
  )
30
30
  trace_writer.trace_point.enable
data/ruby_snooper.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
+ spec.add_dependency "coderay", "~> 1.1.2"
26
27
  spec.add_development_dependency "bundler", "~> 1.17"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_snooper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - nanonanomachine
@@ -10,6 +10,20 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2019-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: coderay
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.2
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement