pry-auto_benching.rb 2.9.1 → 2.10.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
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: []