putter 0.4.0 → 0.6.0

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
- SHA1:
3
- metadata.gz: 16b81ce160fb22785ce8b1bdce7822783ba85eec
4
- data.tar.gz: 7bc3095434de6035e590c28a37c8d435216a5e20
2
+ SHA256:
3
+ metadata.gz: 829259ba903f7d2efbec2e69c5607b4bdf7e1207d5fefa2796f405ad37eb5933
4
+ data.tar.gz: f95568eebb49981fe31cdddd0c1ed62146fd4b2d09f22758562cde42673bcb02
5
5
  SHA512:
6
- metadata.gz: 8334e5bea55fae12d4e65fd35d1077069c32895f71fe26c06673b9f006a36e6693de536753d0b13f8158e89a5a4a76d3ec8c486d055389b29ac5c778fb5b373c
7
- data.tar.gz: 30885b70b4ae1d78a1b74a2eaae951c91175e1879abd95e4721ed2c5dffdecc51c83f7b187108c2273ed538ea18f9a2abd728593e6e2f21bbccaa1630d4f184a
6
+ metadata.gz: fd0dac73234966583f916c2f14da72992311ecbc17087294d857c4da8a6744e539bdff089c3097d4b0696b886141b94903c0f55161a52be591c426bb45eb5dbb
7
+ data.tar.gz: fbc1a92021e8efac8dac381d4c850b29fcf523cc71a5f2ac82e88f278cd523d19c484ae68f962a1e21420d6bf8e9ec1a8e88c604444096844e414ed7d56bf9e1
data/.gitignore CHANGED
@@ -7,3 +7,5 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  putter-*.gem
10
+ Gemfile.lock
11
+ vendor/
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.1.8
1
+ 2.7.1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # CHANGELOG
2
- ### 0.4.0 - 2016-08-16
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 'putter'
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". Will be "ClassName" for classes or "ClassName instance" for instances
64
- methods: ["my_method"], # Optional - If array is empty, then all methods will be watched. Otherwise, this is an array of methods to print debugging input for
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. Otherwise, this is an array of methods to print debugging input for
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
- # 'print_strategy' takes a block that receives a data object with the label, line,
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
- # 'ignore_methods_from' takes an array of class names and will ignore both class and instance methods
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
- # Defaults to [Object]
136
+
137
+ # Defaults to [Object] or [Object, ActiveRecord::Based] if defined
127
138
  config.ignore_methods_from = [Object, ActiveRecord::Base]
128
139
 
129
- # 'methods_whitelist' takes an array of methods and will always proxy and debug those methods
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 'Putter.follow' or 'Putter.watch'
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
- ## Planned Features
137
- Feel free to open a PR to implement any of these if they are not yet added:
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
- - Active Record specific printing
140
- - Checking Rails.env to double check that putter is not called in production
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
- def self.reset_configuration
38
- @configuration = Configuration.new
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
@@ -1,23 +1,36 @@
1
1
  module Putter
2
2
  class Configuration
3
- attr_accessor :print_strategy
4
- attr_writer :ignore_methods_from, :methods_whitelist
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
- _convert_to_array(@ignore_methods_from)
16
+ convert_to_array(@ignore_methods_from)
14
17
  end
15
18
 
16
- def methods_whitelist
17
- _convert_to_array(@methods_whitelist)
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 _convert_to_array(val)
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
@@ -4,4 +4,10 @@ module Errors
4
4
  super
5
5
  end
6
6
  end
7
+
8
+ class MethodConflictError < StandardError
9
+ def initialize(msg="Methods cannot be white and blacklisted")
10
+ super
11
+ end
12
+ end
7
13
  end
@@ -2,7 +2,7 @@ module Putter
2
2
  class Follower < BasicObject
3
3
  include MethodCreator
4
4
 
5
- attr_reader :object, :proxied_methods, :proxy
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
- _set_options(options)
15
+ @data = FollowerData.new(@object, @proxy, options)
16
16
  end
17
17
 
18
18
  def method_missing(method, *args, &blk)
19
- if _add_method?(method)
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
- data = ProxyMethodData.new({ label: @label, method: method})
31
+ proxy_method_data = ProxyMethodData.new(label: @data.label, method: method)
32
32
 
33
- add_putter_instance_method_to_proxy(@proxy, data)
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 add_putter_instance_method_to_proxy(proxy, data)
4
- add_putter_method_to_proxy(proxy, data, :instance_exec)
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 = line.split(::Dir.pwd)[1]
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
- line = !data.line.nil? ? ".#{data.line} " : " "
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
@@ -1,3 +1,3 @@
1
1
  module Putter
2
- VERSION = "0.4.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -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({ label: Putter::Watcher.label_for(klass), method: method })
34
- add_putter_class_method_to_proxy(proxy, data)
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
@@ -3,36 +3,38 @@ module Putter
3
3
  attr_accessor :label, :proxy_methods
4
4
 
5
5
  def initialize(options, klass)
6
- _set_label(options[:label], klass)
7
- _set_methods(options[:methods], klass)
6
+ @label = set_label(options[:label], klass)
7
+ @proxy_methods = set_methods(options[:methods], klass.singleton_class)
8
8
  end
9
9
 
10
- def _set_label(label, klass)
10
+ def set_label(label, klass)
11
11
  if !label.nil? && label != ""
12
- @label = label
12
+ label
13
13
  else
14
- @label = klass.name
14
+ klass.name
15
15
  end
16
16
  end
17
17
 
18
- def _set_methods(methods, klass)
18
+ def set_methods(methods, singleton_klass)
19
19
  if methods.nil?
20
- @proxy_methods = _methods_to_proxy(klass.singleton_class)
20
+ methods_to_proxy(singleton_klass)
21
21
  elsif !methods.is_a?(Array)
22
- @proxy_methods = [methods]
22
+ [methods]
23
23
  else
24
- @proxy_methods = methods
24
+ methods
25
25
  end
26
26
  end
27
27
 
28
- def _methods_to_proxy(singleton_klass)
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
- singleton_klass.instance_methods - ignored_methods + Putter.configuration.methods_whitelist.map(&:to_sym) + [:new]
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.1'
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.12"
27
- spec.add_development_dependency "pry", "~> 0.10.3"
28
- spec.add_development_dependency "rake", "~> 10.0"
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.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: 2016-08-19 00:00:00.000000000 Z
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.12'
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.12'
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.10.3
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.10.3
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: '10.0'
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: '10.0'
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.1'
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
- rubyforge_project:
141
- rubygems_version: 2.4.8
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