tapping_device 0.6.0 → 0.6.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 -2
- data/Gemfile +6 -0
- data/lib/tapping_device.rb +7 -7
- data/lib/tapping_device/{configurable.rb → configuration.rb} +16 -9
- data/lib/tapping_device/output/payload_wrapper.rb +2 -2
- data/lib/tapping_device/version.rb +1 -1
- data/tapping_device.gemspec +3 -12
- metadata +13 -97
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9700574881872ce91eedf976fd5fa7c8506acfa1c0ea8819dc15eeef6e519a9b
|
4
|
+
data.tar.gz: 71b65b11ed57273a0c061f23141d5da92078a16f9a7c7f75e9aebb2de71c32c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ead5f7a86fd942005a85394a0b59e309fc41bcf625369006ec848d2688722cf5fcc8651ad925c103536bef49e1d0a50f4aab75a177242c48873bc5703aea8cd
|
7
|
+
data.tar.gz: f7cab27f0e27937f8c5a8f8c08283ae376e5b7880dffa21857e48c3bcf6e17ed1cb265b5ef399b2f2d294bf5af97b6b26aef16589f97f502c9ebfa29178de0a8
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [v0.6.0](https://github.com/st0012/tapping_device/tree/v0.6.0) (2021-04-25)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/st0012/tapping_device/compare/v0.5.7...
|
5
|
+
[Full Changelog](https://github.com/st0012/tapping_device/compare/v0.5.7...v0.6.0)
|
6
6
|
|
7
7
|
**Implemented enhancements:**
|
8
8
|
|
@@ -19,6 +19,10 @@
|
|
19
19
|
|
20
20
|
[Full Changelog](https://github.com/st0012/tapping_device/compare/v0.5.6...v0.5.7)
|
21
21
|
|
22
|
+
**Implemented enhancements:**
|
23
|
+
|
24
|
+
- Use pastel in output payload [\#62](https://github.com/st0012/tapping_device/issues/62)
|
25
|
+
|
22
26
|
**Closed issues:**
|
23
27
|
|
24
28
|
- Support tag option [\#64](https://github.com/st0012/tapping_device/issues/64)
|
data/Gemfile
CHANGED
data/lib/tapping_device.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
require "
|
2
|
-
require "pry" # for using Method#source
|
1
|
+
require "method_source" # for using Method#source
|
3
2
|
|
4
3
|
require "tapping_device/version"
|
5
4
|
require "tapping_device/manageable"
|
6
5
|
require "tapping_device/payload"
|
7
6
|
require "tapping_device/output"
|
8
7
|
require "tapping_device/trackable"
|
9
|
-
require "tapping_device/
|
8
|
+
require "tapping_device/configuration"
|
10
9
|
require "tapping_device/exceptions"
|
11
10
|
require "tapping_device/method_hijacker"
|
12
11
|
require "tapping_device/trackers/initialization_tracker"
|
@@ -27,7 +26,6 @@ class TappingDevice
|
|
27
26
|
|
28
27
|
extend Manageable
|
29
28
|
|
30
|
-
include Configurable
|
31
29
|
include Output::Helpers
|
32
30
|
|
33
31
|
def initialize(options = {}, &block)
|
@@ -119,8 +117,10 @@ class TappingDevice
|
|
119
117
|
|
120
118
|
# this needs to be placed upfront so we can exclude noise before doing more work
|
121
119
|
def should_be_skipped_by_paths?(filepath)
|
122
|
-
options[:exclude_by_paths]
|
123
|
-
|
120
|
+
exclude_by_paths = options[:exclude_by_paths]
|
121
|
+
filter_by_paths = options[:filter_by_paths]
|
122
|
+
exclude_by_paths.any? { |pattern| pattern.match?(filepath) } ||
|
123
|
+
(filter_by_paths && !filter_by_paths.empty? && !filter_by_paths.any? { |pattern| pattern.match?(filepath) })
|
124
124
|
end
|
125
125
|
|
126
126
|
def is_tapping_device_call?(tp)
|
@@ -136,7 +136,7 @@ class TappingDevice
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def with_condition_satisfied?(payload)
|
139
|
-
@with_condition.
|
139
|
+
@with_condition.nil? || @with_condition.call(payload)
|
140
140
|
end
|
141
141
|
|
142
142
|
def build_payload(tp:, filepath:, line_number:)
|
@@ -1,10 +1,5 @@
|
|
1
|
-
require "active_support/configurable"
|
2
|
-
require "active_support/concern"
|
3
|
-
|
4
1
|
class TappingDevice
|
5
|
-
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
2
|
+
class Configuration
|
8
3
|
DEFAULTS = {
|
9
4
|
filter_by_paths: [],
|
10
5
|
exclude_by_paths: [],
|
@@ -16,12 +11,24 @@ class TappingDevice
|
|
16
11
|
only_private: false
|
17
12
|
}.merge(TappingDevice::Output::DEFAULT_OPTIONS)
|
18
13
|
|
19
|
-
|
20
|
-
|
14
|
+
def initialize
|
15
|
+
@options = {}
|
21
16
|
|
22
17
|
DEFAULTS.each do |key, value|
|
23
|
-
|
18
|
+
@options[key] = value
|
24
19
|
end
|
25
20
|
end
|
21
|
+
|
22
|
+
def [](key)
|
23
|
+
@options[key]
|
24
|
+
end
|
25
|
+
|
26
|
+
def []=(key, value)
|
27
|
+
@options[key] = value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.config
|
32
|
+
@config ||= Configuration.new
|
26
33
|
end
|
27
34
|
end
|
@@ -65,7 +65,7 @@ class TappingDevice
|
|
65
65
|
|
66
66
|
# regenerate attributes with `colorize: true` support
|
67
67
|
define_method attribute do |options = {}|
|
68
|
-
call_result = send("original_#{attribute}", options)
|
68
|
+
call_result = send("original_#{attribute}", options).to_s
|
69
69
|
|
70
70
|
if options[:colorize]
|
71
71
|
PASTEL.send(color, call_result)
|
@@ -120,7 +120,7 @@ class TappingDevice
|
|
120
120
|
after = generate_string_result(value_changes[:after], options[:inspect])
|
121
121
|
|
122
122
|
if options[:colorize]
|
123
|
-
ivar = PASTEL.orange(ivar)
|
123
|
+
ivar = PASTEL.orange(ivar.to_s)
|
124
124
|
before = PASTEL.bright_blue(before.to_s)
|
125
125
|
after = PASTEL.bright_blue(after.to_s)
|
126
126
|
end
|
data/tapping_device.gemspec
CHANGED
@@ -15,24 +15,15 @@ Gem::Specification.new do |spec|
|
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
17
|
spec.metadata["source_code_uri"] = "https://github.com/st0012/tapping_device"
|
18
|
-
spec.metadata["changelog_uri"] = "https://github.com/st0012/tapping_device/
|
18
|
+
spec.metadata["changelog_uri"] = "https://github.com/st0012/tapping_device/CHANGELOG.md"
|
19
19
|
|
20
20
|
# Specify which files should be added to the gem when it is released.
|
21
21
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
22
22
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
23
23
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
24
|
end
|
25
|
-
spec.bindir = "exe"
|
26
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
25
|
spec.require_paths = ["lib"]
|
28
26
|
|
29
|
-
spec.add_dependency "
|
30
|
-
spec.add_dependency "
|
31
|
-
spec.add_dependency "pastel"
|
32
|
-
|
33
|
-
spec.add_development_dependency "database_cleaner"
|
34
|
-
spec.add_development_dependency "bundler", "~> 2.0"
|
35
|
-
spec.add_development_dependency "rake", "~> 13.0"
|
36
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
37
|
-
spec.add_development_dependency "simplecov", "0.17.1"
|
27
|
+
spec.add_dependency "method_source", "~> 1.0.0"
|
28
|
+
spec.add_dependency "pastel", "~> 0.7"
|
38
29
|
end
|
metadata
CHANGED
@@ -1,127 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tapping_device
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- st0012
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: activesupport
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: pastel
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: database_cleaner
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bundler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '2.0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '2.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
14
|
+
name: method_source
|
85
15
|
requirement: !ruby/object:Gem::Requirement
|
86
16
|
requirements:
|
87
17
|
- - "~>"
|
88
18
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
type: :
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
91
21
|
prerelease: false
|
92
22
|
version_requirements: !ruby/object:Gem::Requirement
|
93
23
|
requirements:
|
94
24
|
- - "~>"
|
95
25
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
26
|
+
version: 1.0.0
|
97
27
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
28
|
+
name: pastel
|
99
29
|
requirement: !ruby/object:Gem::Requirement
|
100
30
|
requirements:
|
101
31
|
- - "~>"
|
102
32
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
104
|
-
type: :
|
33
|
+
version: '0.7'
|
34
|
+
type: :runtime
|
105
35
|
prerelease: false
|
106
36
|
version_requirements: !ruby/object:Gem::Requirement
|
107
37
|
requirements:
|
108
38
|
- - "~>"
|
109
39
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: simplecov
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - '='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.17.1
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - '='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.17.1
|
40
|
+
version: '0.7'
|
125
41
|
description: tapping_device lets you understand what your Ruby objects do without
|
126
42
|
digging into the code
|
127
43
|
email:
|
@@ -151,7 +67,7 @@ files:
|
|
151
67
|
- images/print_mutations.png
|
152
68
|
- images/print_traces.png
|
153
69
|
- lib/tapping_device.rb
|
154
|
-
- lib/tapping_device/
|
70
|
+
- lib/tapping_device/configuration.rb
|
155
71
|
- lib/tapping_device/exceptions.rb
|
156
72
|
- lib/tapping_device/manageable.rb
|
157
73
|
- lib/tapping_device/method_hijacker.rb
|
@@ -173,7 +89,7 @@ licenses:
|
|
173
89
|
metadata:
|
174
90
|
homepage_uri: https://github.com/st0012/tapping_device
|
175
91
|
source_code_uri: https://github.com/st0012/tapping_device
|
176
|
-
changelog_uri: https://github.com/st0012/tapping_device/
|
92
|
+
changelog_uri: https://github.com/st0012/tapping_device/CHANGELOG.md
|
177
93
|
post_install_message:
|
178
94
|
rdoc_options: []
|
179
95
|
require_paths:
|