pry-auto_benching.rb 2.9.1 → 2.10.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
2
  SHA256:
3
- metadata.gz: 13ec7e124f4696f88724706d64bf1a72099ea484aa1b7aa269a381fc84eb1f9f
4
- data.tar.gz: b9e3c61b0b99d18686e3ab0c44848a0ab066e73309420a8fb130932e4def3138
3
+ metadata.gz: 2be7a623c19ec705b54bd6e0f47ebd01861c5d97706e81f116585214217ec64e
4
+ data.tar.gz: ec602812de40fde4c93f0f10da7eb9c138946dd88e021fd18e9cd142033467de
5
5
  SHA512:
6
- metadata.gz: 30f653774322435fc6f17758f81dcb25f72d23802beaddf221c2d90caf459af1697f67cfd704df1aee8c35a961290b82295441a353170d9ad026df4b46d192fc
7
- data.tar.gz: 7b0a124e1b42c7c81953345b8cad4840774c0426cb796da5716fd00e9b1881c965aadab99cbe678b757dc1100e38f70bc119d4c5d393c9eef863ee299320b64b
6
+ metadata.gz: 6f621e493069445c89cd78ced4684419d3eaddc42939487793ce32fec8717d8bf41a38da7b860ea46f088068db5af62a71489c24019392ebbc1d8e46a28f5b63
7
+ data.tar.gz: a394d268ae3eaeb41858fb6d53862167d963978531bf94c5c6f716cb93c036ac3e96b05984800aaa67ee5a0b3cf6e4d7932002a09834f1ec634614cf4d937a56
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v2.10.0
4
+
5
+ * Add 'none' as a possible target display.
6
+ When chosen benchmark results are not written to a display but are still
7
+ recorded and can be viewed on demand by running `auto-benching --past`.
8
+
3
9
  ## v2.9.1
4
10
 
5
11
  * Fix a bug where `MomentList` would not cycle oldest entries first.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # pry-auto_benching.rb
2
2
 
3
- pry-auto_benching.rb automatically benchmarks input entered into Pry.
3
+ pry-auto_benching.rb automates benchmarking in Pry.
4
4
 
5
5
  ## Configuration (optional)
6
6
 
@@ -20,9 +20,18 @@ Pry.configure do |config|
20
20
  # See https://www.rubydoc.info/stdlib/core/Process:clock_gettime
21
21
  config.auto_benching.clock_type = Process::CLOCK_REALTIME
22
22
 
23
- # Configure where benchmark results should be displayed, either
24
- # in the prompt or written to `_pry_.output`. Default is :prompt.
25
- config.auto_benching.target_display = ':prompt | :output'
23
+ # Configure where benchmark results will be displayed.
24
+ # Valid options are:
25
+ # * prompt
26
+ # The default, results are written to the prompt.
27
+ #
28
+ # * output
29
+ # Results are written directly to `_pry_.output`
30
+ #
31
+ # * none
32
+ # Results are not displayed but are still recorded and can be viewed on
33
+ # demand by running 'auto-benching --past'.
34
+ config.auto_benching.target_display = ':prompt | :output | :none'
26
35
 
27
36
  # Benchmark results are printed or not depending on the return value
28
37
  # of this lambda, by default results are printed when duration >= 0.01.
@@ -54,20 +63,13 @@ Show help by running `auto-benching -h`:
54
63
 
55
64
  -v, --version Display version.
56
65
  -p, --past Display past benchmark results.
57
- -t, --target-display Choose the target display for results. Valid options are: stdout, prompt
66
+ -t, --target-display Choose the target display for results. Valid options are: stdout, prompt, none
58
67
  -h, --help Show this message.
59
68
 
60
69
  __2.__
61
70
 
62
- Disable auto benchmarking by running `auto-benching disable`:
63
-
64
- [5] pry(main)> auto-benching disable
65
- pry-auto_benching.rb: stopped benchmarking.
66
- [6] pry(main)>
67
-
68
- __3.__
69
-
70
- An example showing the prompt being updated with benchmark results.
71
+ An example showing the prompt being updated with benchmark results. <br>
72
+ This is the default.
71
73
 
72
74
  [7] pry(main)> sleep 0.2
73
75
  => 0
@@ -77,9 +79,9 @@ An example showing the prompt being updated with benchmark results.
77
79
  => #<Net::HTTPOK 200 OK readbody=true>
78
80
  [10] 1.53s (main)>
79
81
 
80
- __4.__
82
+ __3.__
81
83
 
82
- An example with `:output` set as the `target_display`.
84
+ An example showing `:output` set as the `target_display`.
83
85
 
84
86
  [6] pry(main)> auto-benching --target-display output
85
87
  Display changed to 'output'
@@ -93,9 +95,10 @@ An example with `:output` set as the `target_display`.
93
95
  pry-auto_benching.rb: 0.31s
94
96
  => #<Net::HTTPOK 200 OK readbody=true>
95
97
 
96
- __5.__
98
+ __4.__
97
99
 
98
- Display a history of benchmark results for the current Pry session using `auto-benching --past`:
100
+ Displaying a history of benchmark results for the current Pry session using
101
+ `auto-benching --past`:
99
102
 
100
103
  [6] 0.5s (main)> auto-benching --past
101
104
  1. Net::HTTP.get_response URI.parse('https://github.com') (0.88s)
@@ -104,6 +107,15 @@ Display a history of benchmark results for the current Pry session using `auto-b
104
107
  4. sleep 0.5 (0.5s)
105
108
  [7] pry(main)>
106
109
 
110
+ __5.__
111
+
112
+ Disable auto benchmarking for the current Pry session by running
113
+ `auto-benching disable`:
114
+
115
+ [5] pry(main)> auto-benching disable
116
+ pry-auto_benching.rb: stopped benchmarking.
117
+ [6] pry(main)>
118
+
107
119
  ## Accuracy
108
120
 
109
121
  pry-auto_benching.rb can measure down to 10 milliseconds (0.01 = 10 milliseconds). <br>
@@ -115,12 +127,12 @@ Benchmarking `sleep 0.01` shows no overhead in the results:
115
127
 
116
128
  But it is possible results can be reported inaccurately since the measurement
117
129
  includes a **very** small number of method calls to Pry internals, and it could
118
- include time spent by other Pry plugins. I have seen inaccuracies of up to
130
+ include time spent by other Pry plugins as well. I have seen inaccuracies of
119
131
  10ms (0.01) but not all the time.
120
132
 
121
- The overhead should be minimal and skew results by a margin that could be considered
122
- negligible, although other Pry plugins running before/after eval hooks
123
- and spending a lot of time doing so could skew results more than is expected.
133
+ The overhead could be considered negligible, although other Pry plugins running
134
+ before/after eval hooks and spending a lot of time doing that could skew results
135
+ more than is expected.
124
136
 
125
137
  ## Integration with custom prompts
126
138
 
@@ -3,7 +3,7 @@ Pry::Commands.add_command Class.new(Pry::ClassCommand) {
3
3
  match 'auto-benching'
4
4
  command_options argument_required: true
5
5
  group 'pry-auto_benching.rb'
6
- description 'Enable or disable benchmarking.'
6
+ description 'For enabling and disabling benchmarking and other related features.'
7
7
  banner <<-CMDBANNER
8
8
  Usage: auto-benching [options] [enable|disable]
9
9
 
@@ -16,14 +16,19 @@ Pry::Commands.add_command Class.new(Pry::ClassCommand) {
16
16
  o.on :p, :past, 'Display past benchmark results.'
17
17
  o.on :t,
18
18
  :'target-display',
19
- 'Choose the target display for results. Valid options are: stdout, prompt',
19
+ 'Choose the target display for results. Valid options are: stdout, prompt, none',
20
20
  argument: :required
21
21
  end
22
22
 
23
23
  def process(command)
24
24
  case
25
25
  when opts.version?
26
- _pry_.output.puts "pry-auto_benching.rb v#{Pry::AutoBenching::VERSION}"
26
+ page <<-VERSION
27
+ #{bold('pry-auto_benching.rb')} #{bold("v#{Pry::AutoBenching::VERSION}")}
28
+ --
29
+ If you found a bug, have a suggestion or an improvement to make please open an
30
+ issue / pull request at https://github.com/r-obert/pry-auto_benching.rb
31
+ VERSION
27
32
  when opts.t?
28
33
  change_target_display(opts[:t])
29
34
  when opts.past?
@@ -31,10 +36,10 @@ Pry::Commands.add_command Class.new(Pry::ClassCommand) {
31
36
  else
32
37
  if command == 'enable'
33
38
  Pry::AutoBenching.enable(_pry_)
34
- _pry_.pager.page('pry-auto_benching.rb: benchmarking.')
39
+ page('pry-auto_benching.rb: benchmarking.')
35
40
  elsif command == 'disable'
36
41
  Pry::AutoBenching.disable(_pry_)
37
- _pry_.pager.page('pry-auto_benching.rb: stopped benchmarking.')
42
+ page('pry-auto_benching.rb: stopped benchmarking.')
38
43
  else
39
44
  raise Pry::CommandError, "'#{command}' is not implemented by this command, try -h for help."
40
45
  end
@@ -57,7 +62,7 @@ Pry::Commands.add_command Class.new(Pry::ClassCommand) {
57
62
  end
58
63
 
59
64
  def change_target_display(target_display)
60
- if %w(prompt output).include?(target_display)
65
+ if %w[prompt output none].include?(target_display)
61
66
  _pry_.config.auto_benching.target_display = target_display
62
67
  page "Display changed to '#{target_display}'"
63
68
  else
@@ -68,4 +73,4 @@ Pry::Commands.add_command Class.new(Pry::ClassCommand) {
68
73
  def page(str)
69
74
  _pry_.pager.page str
70
75
  end
71
- }
76
+ }
@@ -1,5 +1,5 @@
1
1
  class Pry
2
2
  module AutoBenching
3
- VERSION = "2.9.1"
3
+ VERSION = "2.10.0"
4
4
  end
5
5
  end
@@ -59,6 +59,8 @@ module Pry::AutoBenching
59
59
  elsif target_display == 'output'
60
60
  pry.config.forget(:prompt_name)
61
61
  pry.pager.page auto_benching.output_string.call(pry, duration)
62
+ elsif target_display == 'none'
63
+ pry.config.forget(:prompt_name)
62
64
  else
63
65
  pry.config.forget(:prompt_name)
64
66
  pry.output.warn "_pry_.config.auto_benching.target_display has an invalid value " \
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
4
4
  spec.version = Pry::AutoBenching::VERSION
5
5
  spec.authors = ["Robert Gleeson"]
6
6
  spec.email = "trebor.g@protonmail.com"
7
- spec.summary = "Pry plugin that automatically benchmarks input given to Pry."
7
+ spec.summary = "Automates benchmarking in Pry"
8
8
  spec.description = spec.summary
9
9
  spec.homepage = "https://github.com/r-obert/pry-auto_benching.rb"
10
10
  spec.licenses = ["MIT"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-auto_benching.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.1
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Gleeson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-20 00:00:00.000000000 Z
11
+ date: 2018-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.12'
27
- description: Pry plugin that automatically benchmarks input given to Pry.
27
+ description: Automates benchmarking in Pry
28
28
  email: trebor.g@protonmail.com
29
29
  executables: []
30
30
  extensions: []
@@ -60,5 +60,5 @@ rubyforge_project:
60
60
  rubygems_version: 2.7.7
61
61
  signing_key:
62
62
  specification_version: 4
63
- summary: Pry plugin that automatically benchmarks input given to Pry.
63
+ summary: Automates benchmarking in Pry
64
64
  test_files: []