putter 0.4.0 → 0.6.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.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +17 -1
- data/README.md +34 -15
- data/lib/putter.rb +32 -19
- data/lib/putter/configuration.rb +19 -6
- data/lib/putter/errors.rb +6 -0
- data/lib/putter/follower.rb +5 -48
- data/lib/putter/follower_data.rb +48 -0
- data/lib/putter/method_creator.rb +6 -14
- data/lib/putter/print_strategy.rb +7 -1
- data/lib/putter/version.rb +1 -1
- data/lib/putter/watcher.rb +2 -2
- data/lib/putter/watcher_data.rb +14 -12
- data/putter.gemspec +4 -4
- metadata +14 -15
- data/Gemfile.lock +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 829259ba903f7d2efbec2e69c5607b4bdf7e1207d5fefa2796f405ad37eb5933
|
4
|
+
data.tar.gz: f95568eebb49981fe31cdddd0c1ed62146fd4b2d09f22758562cde42673bcb02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd0dac73234966583f916c2f14da72992311ecbc17087294d857c4da8a6744e539bdff089c3097d4b0696b886141b94903c0f55161a52be591c426bb45eb5dbb
|
7
|
+
data.tar.gz: fbc1a92021e8efac8dac381d4c850b29fcf523cc71a5f2ac82e88f278cd523d19c484ae68f962a1e21420d6bf8e9ec1a8e88c604444096844e414ed7d56bf9e1
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.7.1
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# CHANGELOG
|
2
|
-
### 0.
|
2
|
+
### 0.6.0 - 2021-08-02
|
3
|
+
- Update required ruby version to 2.7
|
4
|
+
|
5
|
+
### 0.5.1 - 2016-11-11
|
6
|
+
- Add hotfix for putter running on a script in a local directory to print out the file information
|
7
|
+
|
8
|
+
### 0.5.0 - 2016-11-10
|
9
|
+
- Add methods blacklist to the configuration options
|
10
|
+
- Ensures that local method options override anything in the blacklist
|
11
|
+
|
12
|
+
### 0.4.1 - 2016-10-16
|
13
|
+
- By default, Putter will not run in production mode in Rails, this can be allow via configuration
|
14
|
+
- By default, Putter will ignore methods from ActiveRecord::Base if it is present
|
15
|
+
- Do not re-define a method if it is whitelisted
|
16
|
+
- Code cleanup and README updates
|
17
|
+
|
18
|
+
### 0.4.0 - 2016-08-18
|
3
19
|
- Add methods option to `Putter.watch`
|
4
20
|
- Refactor watch method to use registry
|
5
21
|
- Refactor method creation specs
|
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Putter
|
2
2
|
|
3
|
+
### Still Maintained as of February 2020
|
4
|
+
|
5
|
+
## Description
|
6
|
+
|
3
7
|
It rhymes with gooder, not gutter.
|
4
8
|
|
5
9
|
Putter is a tool for more easily implementing puts debugging. Instead of littering files with various puts statements, you can wrap an object with a follower or watcher and print out anytime a method is called on that object. This will follow the object throughout its path in the stack.
|
@@ -9,7 +13,7 @@ Putter is a tool for more easily implementing puts debugging. Instead of litteri
|
|
9
13
|
Add this line to your application's Gemfile:
|
10
14
|
|
11
15
|
```ruby
|
12
|
-
gem
|
16
|
+
gem "putter"
|
13
17
|
```
|
14
18
|
|
15
19
|
And then execute:
|
@@ -60,8 +64,11 @@ Putter Debugging: Object instance ./putter/README.md:57 -- Method: :hello, Args:
|
|
60
64
|
```ruby
|
61
65
|
Putter.follow(
|
62
66
|
object_to_follow,
|
63
|
-
label: "My object", # Optional - Label to use after "Putter Debugging: My object".
|
64
|
-
|
67
|
+
label: "My object", # Optional - Label to use after "Putter Debugging: My object".
|
68
|
+
# Will be "ClassName" for classes or "ClassName instance" for instances
|
69
|
+
methods: ["my_method"], # Optional - If array is empty, then all methods will be watched.
|
70
|
+
# Otherwise, this is an array of methods to print debugging input for. This will override
|
71
|
+
# any settings in the configuration blacklist
|
65
72
|
)
|
66
73
|
```
|
67
74
|
|
@@ -102,7 +109,9 @@ Putter Debugging: MyObject instance 1 ./putter/README.md:97 -- Method: :hello_in
|
|
102
109
|
Putter.watch(
|
103
110
|
ClassToWatch,
|
104
111
|
label: "My class", # Optional - Label to use after "Putter Debugging: My class". Will be "ClassName" for classes or "ClassName instance #" for instances
|
105
|
-
methods: ["my_method"], # Optional - If array is empty, then all methods will be watched.
|
112
|
+
methods: ["my_method"], # Optional - If array is empty, then all methods will be watched.
|
113
|
+
# Otherwise, this is an array of methods to print debugging input for. This will override
|
114
|
+
# any settings in the configuration blacklist
|
106
115
|
)
|
107
116
|
```
|
108
117
|
|
@@ -112,32 +121,42 @@ Putter currently has 3 configuration options:
|
|
112
121
|
|
113
122
|
```ruby
|
114
123
|
Putter.configure do |config|
|
115
|
-
#
|
124
|
+
# "print_strategy" takes a block that receives a data object with the label, line,
|
116
125
|
# method, args string, and result respectively. This block will be used after each method
|
117
126
|
# is called, it must contain puts or logger calls, to print or any other method callbacks
|
118
127
|
# that are helpful.
|
128
|
+
|
119
129
|
# Defaults to Putter::PrintStrategy::Default
|
120
130
|
config.print_strategy = Proc.new do |data|
|
121
131
|
puts "#{data.line} - Label: #{data.label}, Method: #{data.method}, Args: #{data.args}, Result: #{data.result}"
|
122
132
|
end
|
123
133
|
|
124
|
-
#
|
134
|
+
# "ignore_methods_from" takes an array of class names and will ignore both class and instance methods
|
125
135
|
# from those classes when adding methods to the proxy and adding debug output
|
126
|
-
|
136
|
+
|
137
|
+
# Defaults to [Object] or [Object, ActiveRecord::Based] if defined
|
127
138
|
config.ignore_methods_from = [Object, ActiveRecord::Base]
|
128
139
|
|
129
|
-
#
|
140
|
+
# "methods_whitelist" takes an array of methods and will always proxy and debug those methods
|
130
141
|
# regardless of whether or not the class is ignored and regardless of what methods are passed
|
131
|
-
# in when running
|
142
|
+
# in when running "Putter.follow" or "Putter.watch"
|
143
|
+
|
144
|
+
# Defaults to []
|
132
145
|
config.methods_whitelist = [:to_s]
|
133
|
-
end
|
134
|
-
```
|
135
146
|
|
136
|
-
|
137
|
-
|
147
|
+
# "methods_blacklist" takes an array of methods and will never proxy. If this is combined
|
148
|
+
# with the `methods_whitelist` then it will raise a `MethodConflictError`.
|
149
|
+
|
150
|
+
# Defaults to []
|
151
|
+
config.methods_blacklist = [:to_s]
|
152
|
+
|
153
|
+
# "allow_production" takes a boolean and determines whether or not Putter will run if
|
154
|
+
# `Rails.env == "production"`
|
138
155
|
|
139
|
-
|
140
|
-
|
156
|
+
# Defaults to false
|
157
|
+
config.allow_production = false
|
158
|
+
end
|
159
|
+
```
|
141
160
|
|
142
161
|
## Contributing
|
143
162
|
|
data/lib/putter.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "putter/configuration"
|
2
2
|
require "putter/errors"
|
3
|
+
require "putter/follower_data"
|
3
4
|
require "putter/instance_follower"
|
4
5
|
require "putter/method_creator"
|
5
6
|
require "putter/method_proxy"
|
@@ -16,25 +17,37 @@ module Putter
|
|
16
17
|
|
17
18
|
class << self
|
18
19
|
attr_writer :configuration
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.follow(obj, options={})
|
22
|
-
Putter::Follower.new(obj, options)
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.watch(obj, options={})
|
26
|
-
Putter::Watcher.watch(obj, options)
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.configuration
|
30
|
-
@configuration ||= Configuration.new
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.configure
|
34
|
-
yield configuration
|
35
|
-
end
|
36
20
|
|
37
|
-
|
38
|
-
|
21
|
+
def follow(obj, options={})
|
22
|
+
with_production_check do
|
23
|
+
Putter::Follower.new(obj, options)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def watch(obj, options={})
|
28
|
+
with_production_check do
|
29
|
+
Putter::Watcher.watch(obj, options)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def configuration
|
34
|
+
@configuration ||= Configuration.new
|
35
|
+
end
|
36
|
+
|
37
|
+
def configure
|
38
|
+
yield configuration
|
39
|
+
end
|
40
|
+
|
41
|
+
def reset_configuration
|
42
|
+
@configuration = Configuration.new
|
43
|
+
end
|
44
|
+
|
45
|
+
def with_production_check
|
46
|
+
if !configuration.allow_production && defined?(Rails) && Rails.env == "production"
|
47
|
+
puts "Putter cannot be run in production unless the 'allow_production' option is configured to true".colorize(:red)
|
48
|
+
else
|
49
|
+
yield
|
50
|
+
end
|
51
|
+
end
|
39
52
|
end
|
40
53
|
end
|
data/lib/putter/configuration.rb
CHANGED
@@ -1,23 +1,36 @@
|
|
1
1
|
module Putter
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :print_strategy
|
4
|
-
attr_writer :ignore_methods_from
|
3
|
+
attr_accessor :allow_production, :methods_whitelist, :methods_blacklist, :print_strategy
|
4
|
+
attr_writer :ignore_methods_from
|
5
5
|
|
6
6
|
def initialize
|
7
7
|
@ignore_methods_from = [Object]
|
8
|
+
@ignore_methods_from << ActiveRecord::Base if defined?(ActiveRecord::Base)
|
8
9
|
@print_strategy = PrintStrategy::Default
|
10
|
+
@allow_production = false
|
9
11
|
@methods_whitelist = []
|
12
|
+
@methods_blacklist = []
|
10
13
|
end
|
11
14
|
|
12
15
|
def ignore_methods_from
|
13
|
-
|
16
|
+
convert_to_array(@ignore_methods_from)
|
14
17
|
end
|
15
18
|
|
16
|
-
def methods_whitelist
|
17
|
-
|
19
|
+
def methods_whitelist=(methods)
|
20
|
+
raise ::Putter::MethodConflictError unless (@methods_blacklist & methods).empty?
|
21
|
+
|
22
|
+
@methods_whitelist = methods
|
18
23
|
end
|
19
24
|
|
20
|
-
def
|
25
|
+
def methods_blacklist=(methods)
|
26
|
+
raise ::Putter::MethodConflictError unless (@methods_whitelist & methods).empty?
|
27
|
+
|
28
|
+
@methods_blacklist = methods
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def convert_to_array(val)
|
21
34
|
if val.nil?
|
22
35
|
[]
|
23
36
|
elsif !val.is_a?(Array)
|
data/lib/putter/errors.rb
CHANGED
data/lib/putter/follower.rb
CHANGED
@@ -2,7 +2,7 @@ module Putter
|
|
2
2
|
class Follower < BasicObject
|
3
3
|
include MethodCreator
|
4
4
|
|
5
|
-
attr_reader :object, :
|
5
|
+
attr_reader :object, :proxy
|
6
6
|
|
7
7
|
def initialize(obj, options={})
|
8
8
|
@object = obj
|
@@ -12,11 +12,11 @@ module Putter
|
|
12
12
|
rescue ::NoMethodError
|
13
13
|
::Kernel.raise ::Putter::BasicObjectError
|
14
14
|
end
|
15
|
-
|
15
|
+
@data = FollowerData.new(@object, @proxy, options)
|
16
16
|
end
|
17
17
|
|
18
18
|
def method_missing(method, *args, &blk)
|
19
|
-
if
|
19
|
+
if @data.add_method?(method)
|
20
20
|
add_method(method)
|
21
21
|
end
|
22
22
|
|
@@ -28,52 +28,9 @@ module Putter
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def add_method(method)
|
31
|
-
|
31
|
+
proxy_method_data = ProxyMethodData.new(label: @data.label, method: method)
|
32
32
|
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
def _add_method?(method)
|
37
|
-
return true if _is_whitelisted_method?(method)
|
38
|
-
return false if _is_ignored_method?(method)
|
39
|
-
return false if @proxy.instance_methods.include?(method)
|
40
|
-
return @proxy_all_methods || proxied_methods.include?(method.to_s)
|
41
|
-
end
|
42
|
-
|
43
|
-
def _is_ignored_method?(method)
|
44
|
-
::Putter.configuration.ignore_methods_from.each do |klass|
|
45
|
-
return true if klass.methods.include?(method.to_sym)
|
46
|
-
return true if klass.instance_methods.include?(method.to_sym)
|
47
|
-
end
|
48
|
-
return false
|
49
|
-
end
|
50
|
-
|
51
|
-
def _is_whitelisted_method?(method)
|
52
|
-
::Putter.configuration.methods_whitelist.map(&:to_sym).include?(method.to_sym)
|
53
|
-
end
|
54
|
-
|
55
|
-
def _set_label(label)
|
56
|
-
if !label.nil?
|
57
|
-
@label = label
|
58
|
-
elsif @object.class == ::Class
|
59
|
-
@label = @object.name
|
60
|
-
else
|
61
|
-
@label = @object.class.name + " instance"
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def _set_methods(methods)
|
66
|
-
if methods.nil?
|
67
|
-
@proxy_all_methods = true
|
68
|
-
else
|
69
|
-
@proxied_methods = methods.map(&:to_s)
|
70
|
-
@proxy_all_methods = false
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def _set_options(options)
|
75
|
-
_set_label(options[:label])
|
76
|
-
_set_methods(options[:methods])
|
33
|
+
add_putter_method_to_proxy(@proxy, proxy_method_data)
|
77
34
|
end
|
78
35
|
end
|
79
36
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Putter
|
2
|
+
class FollowerData
|
3
|
+
attr_accessor :label
|
4
|
+
|
5
|
+
def initialize(object, proxy, options)
|
6
|
+
@proxy = proxy
|
7
|
+
@proxied_methods = options[:methods] || []
|
8
|
+
set_label(options[:label], object)
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_method?(method)
|
12
|
+
return false if @proxy.instance_methods.include?(method)
|
13
|
+
return true if @proxied_methods.include?(method)
|
14
|
+
return true if is_whitelisted_method?(method)
|
15
|
+
return false if is_blacklisted_method?(method)
|
16
|
+
return false if is_ignored_method?(method)
|
17
|
+
return true if @proxied_methods.empty?
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def set_label(label, object)
|
23
|
+
if !label.nil?
|
24
|
+
@label = label
|
25
|
+
elsif object.class == Class
|
26
|
+
@label = object.name
|
27
|
+
else
|
28
|
+
@label = object.class.name + " instance"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def is_whitelisted_method?(method)
|
33
|
+
::Putter.configuration.methods_whitelist.map(&:to_sym).include?(method.to_sym)
|
34
|
+
end
|
35
|
+
|
36
|
+
def is_blacklisted_method?(method)
|
37
|
+
::Putter.configuration.methods_blacklist.map(&:to_sym).include?(method.to_sym)
|
38
|
+
end
|
39
|
+
|
40
|
+
def is_ignored_method?(method)
|
41
|
+
::Putter.configuration.ignore_methods_from.each do |klass|
|
42
|
+
return true if klass.methods.include?(method.to_sym)
|
43
|
+
return true if klass.instance_methods.include?(method.to_sym)
|
44
|
+
end
|
45
|
+
return false
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,20 +1,12 @@
|
|
1
1
|
module Putter
|
2
2
|
module MethodCreator
|
3
|
-
def
|
4
|
-
|
5
|
-
end
|
6
|
-
|
7
|
-
def add_putter_class_method_to_proxy(proxy, data)
|
8
|
-
add_putter_method_to_proxy(proxy, data, :module_exec)
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def add_putter_method_to_proxy(proxy, data, eval_method)
|
14
|
-
proxy.send(eval_method, data) do |data|
|
3
|
+
def add_putter_method_to_proxy(proxy, data)
|
4
|
+
proxy.send(:instance_exec, data) do |data|
|
15
5
|
define_method(data.method) do |*proxy_args, &blk|
|
16
|
-
line = caller.find {|call| call.match(data.stack_trace_ignore_regex)}
|
17
|
-
data.line
|
6
|
+
data.line = caller.find {|call| call.match(data.stack_trace_ignore_regex)}
|
7
|
+
if data.line.include?(::Dir.pwd)
|
8
|
+
data.line = data.line.split(::Dir.pwd)[1]
|
9
|
+
end
|
18
10
|
data.args = proxy_args.to_s
|
19
11
|
data.result = super *proxy_args, &blk
|
20
12
|
::Putter.configuration.print_strategy.call data
|
@@ -4,7 +4,13 @@ module Putter
|
|
4
4
|
module PrintStrategy
|
5
5
|
Default = Proc.new do |data|
|
6
6
|
prefix = "\tPutter Debugging: #{data.label} ".colorize(:cyan)
|
7
|
-
|
7
|
+
if data.line.nil?
|
8
|
+
line = " "
|
9
|
+
elsif data.line[0] != "/"
|
10
|
+
line = "./#{data.line} "
|
11
|
+
else
|
12
|
+
line = ".#{data.line} "
|
13
|
+
end
|
8
14
|
suffix = "-- Method: :#{data.method}, Args: #{data.args}, Result: #{data.result}".colorize(:green)
|
9
15
|
puts prefix + line + suffix
|
10
16
|
end
|
data/lib/putter/version.rb
CHANGED
data/lib/putter/watcher.rb
CHANGED
@@ -30,8 +30,8 @@ module Putter
|
|
30
30
|
proxy = MethodProxy.new
|
31
31
|
|
32
32
|
Putter::Watcher.methods_for(klass).each do |method|
|
33
|
-
data = ProxyMethodData.new(
|
34
|
-
|
33
|
+
data = ProxyMethodData.new(label: Putter::Watcher.label_for(klass), method: method)
|
34
|
+
add_putter_method_to_proxy(proxy, data)
|
35
35
|
end
|
36
36
|
|
37
37
|
proxy
|
data/lib/putter/watcher_data.rb
CHANGED
@@ -3,36 +3,38 @@ module Putter
|
|
3
3
|
attr_accessor :label, :proxy_methods
|
4
4
|
|
5
5
|
def initialize(options, klass)
|
6
|
-
|
7
|
-
|
6
|
+
@label = set_label(options[:label], klass)
|
7
|
+
@proxy_methods = set_methods(options[:methods], klass.singleton_class)
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
10
|
+
def set_label(label, klass)
|
11
11
|
if !label.nil? && label != ""
|
12
|
-
|
12
|
+
label
|
13
13
|
else
|
14
|
-
|
14
|
+
klass.name
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
18
|
+
def set_methods(methods, singleton_klass)
|
19
19
|
if methods.nil?
|
20
|
-
|
20
|
+
methods_to_proxy(singleton_klass)
|
21
21
|
elsif !methods.is_a?(Array)
|
22
|
-
|
22
|
+
[methods]
|
23
23
|
else
|
24
|
-
|
24
|
+
methods
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
ignored_methods =
|
28
|
+
def methods_to_proxy(singleton_klass)
|
29
|
+
ignored_methods = Putter.configuration.methods_blacklist.map(&:to_sym)
|
30
30
|
|
31
31
|
Putter.configuration.ignore_methods_from.each do |klass|
|
32
32
|
ignored_methods += klass.methods
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
whitelist = Putter.configuration.methods_whitelist.map(&:to_sym) + [:new]
|
36
|
+
|
37
|
+
singleton_klass.instance_methods - ignored_methods + whitelist
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
data/putter.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "https://github.com/dewyze/putter"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.required_ruby_version = '~> 2.
|
17
|
+
spec.required_ruby_version = '~> 2.7'
|
18
18
|
|
19
19
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
20
|
spec.bindir = "bin"
|
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'colorize', '~> 0'
|
25
25
|
|
26
|
-
spec.add_development_dependency "bundler", "~> 1
|
27
|
-
spec.add_development_dependency "pry", "~> 0.
|
28
|
-
spec.add_development_dependency "rake", "~>
|
26
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
27
|
+
spec.add_development_dependency "pry", "~> 0.14.1"
|
28
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: putter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John DeWyze
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -30,42 +30,42 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1
|
33
|
+
version: '2.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.14.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.14.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '13.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '13.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,6 @@ files:
|
|
99
99
|
- CHANGELOG.md
|
100
100
|
- CODE_OF_CONDUCT.md
|
101
101
|
- Gemfile
|
102
|
-
- Gemfile.lock
|
103
102
|
- LICENSE.txt
|
104
103
|
- README.md
|
105
104
|
- Rakefile
|
@@ -109,6 +108,7 @@ files:
|
|
109
108
|
- lib/putter/configuration.rb
|
110
109
|
- lib/putter/errors.rb
|
111
110
|
- lib/putter/follower.rb
|
111
|
+
- lib/putter/follower_data.rb
|
112
112
|
- lib/putter/instance_follower.rb
|
113
113
|
- lib/putter/method_creator.rb
|
114
114
|
- lib/putter/method_proxy.rb
|
@@ -122,7 +122,7 @@ homepage: https://github.com/dewyze/putter
|
|
122
122
|
licenses:
|
123
123
|
- MIT
|
124
124
|
metadata: {}
|
125
|
-
post_install_message:
|
125
|
+
post_install_message:
|
126
126
|
rdoc_options: []
|
127
127
|
require_paths:
|
128
128
|
- lib
|
@@ -130,16 +130,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
130
|
requirements:
|
131
131
|
- - "~>"
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: '2.
|
133
|
+
version: '2.7'
|
134
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
|
-
|
141
|
-
|
142
|
-
signing_key:
|
140
|
+
rubygems_version: 3.1.2
|
141
|
+
signing_key:
|
143
142
|
specification_version: 4
|
144
143
|
summary: Putter makes puts debugging easy.
|
145
144
|
test_files: []
|
data/Gemfile.lock
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
putter (0.4.0)
|
5
|
-
colorize (~> 0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
coderay (1.1.1)
|
11
|
-
colorize (0.7.7)
|
12
|
-
diff-lcs (1.2.5)
|
13
|
-
method_source (0.8.2)
|
14
|
-
pry (0.10.3)
|
15
|
-
coderay (~> 1.1.0)
|
16
|
-
method_source (~> 0.8.1)
|
17
|
-
slop (~> 3.4)
|
18
|
-
rake (10.5.0)
|
19
|
-
rspec (3.4.0)
|
20
|
-
rspec-core (~> 3.4.0)
|
21
|
-
rspec-expectations (~> 3.4.0)
|
22
|
-
rspec-mocks (~> 3.4.0)
|
23
|
-
rspec-core (3.4.4)
|
24
|
-
rspec-support (~> 3.4.0)
|
25
|
-
rspec-expectations (3.4.0)
|
26
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
27
|
-
rspec-support (~> 3.4.0)
|
28
|
-
rspec-mocks (3.4.1)
|
29
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
-
rspec-support (~> 3.4.0)
|
31
|
-
rspec-support (3.4.1)
|
32
|
-
slop (3.6.0)
|
33
|
-
|
34
|
-
PLATFORMS
|
35
|
-
ruby
|
36
|
-
|
37
|
-
DEPENDENCIES
|
38
|
-
bundler (~> 1.12)
|
39
|
-
pry (~> 0.10.3)
|
40
|
-
putter!
|
41
|
-
rake (~> 10.0)
|
42
|
-
rspec (~> 3.0)
|
43
|
-
|
44
|
-
BUNDLED WITH
|
45
|
-
1.12.4
|