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