ruby_snooper 0.1.1 → 0.1.2

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 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