puppet-debugger 0.6.0 → 0.6.1
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 +4 -4
- data/CHANGELOG.md +2 -0
- data/lib/puppet-debugger/cli.rb +6 -8
- data/lib/puppet-debugger/support/input_responders.rb +27 -0
- data/lib/puppet-debugger/support.rb +10 -1
- data/lib/version.rb +1 -1
- data/spec/puppet_debugger_spec.rb +30 -1
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44f5198a38560ebf262df1bb5d9fb27b4689f6d0
|
4
|
+
data.tar.gz: 76718414d5e49a617b755e6157f29b2188ff52cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84b776b0a55d4d9cc116d4bf5a9ef8d67ecde7a8b6ac357b9f9af5dd990c555f258de0ea87ba1c5a359733ff8ec6524eac4e60d0a66d4858e8dbb4a0299a2c1c
|
7
|
+
data.tar.gz: d47bae21bef89a828e225bcb9095bb4bd1c7a40af174891ae4c17bd69eb487795deff60718ccac0aa9b1e1e7e48fa433b6ed140386e69418be2b29ce79aa00b0
|
data/CHANGELOG.md
CHANGED
data/lib/puppet-debugger/cli.rb
CHANGED
@@ -97,10 +97,11 @@ module PuppetDebugger
|
|
97
97
|
begin
|
98
98
|
output = ''
|
99
99
|
case input
|
100
|
-
when /^play|^classification|^whereami|^facterdb_filter|^facts|^datatypes|^types|^vars|^functions|^classes|^resources|^krt|^environment|^reset|^help/
|
100
|
+
when /^play|^classification|^whereami|^facterdb_filter|^facts|^datatypes|^types|^vars|^functions|^classes|^resources|^krt|^environment|^benchmark|^reset|^help/
|
101
101
|
args = input.split(' ')
|
102
102
|
command = args.shift.to_sym
|
103
103
|
output = send(command, args) if respond_to?(command)
|
104
|
+
@bencmark = false
|
104
105
|
return out_buffer.puts output
|
105
106
|
when /exit/
|
106
107
|
exit 0
|
@@ -112,11 +113,7 @@ module PuppetDebugger
|
|
112
113
|
result = puppet_eval(input)
|
113
114
|
@last_item = result
|
114
115
|
output = normalize_output(result)
|
115
|
-
output =
|
116
|
-
''
|
117
|
-
else
|
118
|
-
output.ai
|
119
|
-
end
|
116
|
+
output = output.nil? ? '' : output.ai
|
120
117
|
end
|
121
118
|
rescue LoadError => e
|
122
119
|
output = e.message.fatal
|
@@ -150,7 +147,8 @@ Puppet Version: #{Puppet.version}
|
|
150
147
|
Puppet Debugger Version: #{PuppetDebugger::VERSION}
|
151
148
|
Created by: NWOps <corey@nwops.io>
|
152
149
|
Type "exit", "functions", "vars", "krt", "whereami", "facts", "resources", "classes",
|
153
|
-
"play", "classification", "types", "datatypes", "
|
150
|
+
"play", "classification", "types", "datatypes", "benchmark",
|
151
|
+
"reset", or "help" for more information.
|
154
152
|
|
155
153
|
EOT
|
156
154
|
output
|
@@ -175,7 +173,7 @@ Type "exit", "functions", "vars", "krt", "whereami", "facts", "resources", "clas
|
|
175
173
|
def read_loop
|
176
174
|
line_number = 1
|
177
175
|
full_buffer = ''
|
178
|
-
while buf = Readline.readline("#{line_number}
|
176
|
+
while buf = Readline.readline("#{line_number}:#{$extra_prompt}>> ", true)
|
179
177
|
begin
|
180
178
|
full_buffer += buf
|
181
179
|
# unless this is puppet code, otherwise skip repl keywords
|
@@ -7,6 +7,33 @@ module PuppetDebugger
|
|
7
7
|
resources classes whereami datatypes play reset help)
|
8
8
|
end
|
9
9
|
|
10
|
+
def disable_benchmark
|
11
|
+
$benchmark = false
|
12
|
+
$extra_prompt = ''
|
13
|
+
'Off'
|
14
|
+
end
|
15
|
+
|
16
|
+
def enable_benchmark(show_status = false)
|
17
|
+
require 'benchmark'
|
18
|
+
$benchmark = true
|
19
|
+
if show_status
|
20
|
+
$extra_prompt = 'BM'
|
21
|
+
'On'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def benchmark(args = [])
|
26
|
+
if args.count > 0
|
27
|
+
enable_benchmark(false)
|
28
|
+
out = handle_input(args.first)
|
29
|
+
disable_benchmark
|
30
|
+
out
|
31
|
+
else
|
32
|
+
status = $benchmark ? disable_benchmark : enable_benchmark(true)
|
33
|
+
"Benchmark Mode #{status}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
10
37
|
def datatypes(_args = [])
|
11
38
|
types = all_data_types
|
12
39
|
return types.sort.ai if types.instance_of?(Array)
|
@@ -135,7 +135,16 @@ module PuppetDebugger
|
|
135
135
|
global_scope: scope, loaders: scope.compiler.loaders }, 'For puppet-debugger') do
|
136
136
|
# because the repl is not a module we leave the modname blank
|
137
137
|
scope.environment.known_resource_types.import_ast(ast, '')
|
138
|
-
|
138
|
+
|
139
|
+
if $benchmark
|
140
|
+
result = nil
|
141
|
+
time = Benchmark.realtime do
|
142
|
+
result = parser.evaluate_string(scope, input, File.expand_path(file))
|
143
|
+
end
|
144
|
+
[result, "Time elapsed #{(time*1000).round(2)} ms"]
|
145
|
+
else
|
146
|
+
parser.evaluate_string(scope, input, File.expand_path(file))
|
147
|
+
end
|
139
148
|
end
|
140
149
|
end
|
141
150
|
|
data/lib/version.rb
CHANGED
@@ -180,7 +180,7 @@ describe 'PuppetDebugger' do
|
|
180
180
|
'help'
|
181
181
|
end
|
182
182
|
it 'can show the help screen' do
|
183
|
-
expected_debugger_output = /Type \"exit\", \"functions\", \"vars\", \"krt\", \"whereami\", \"facts\", \"resources\", \"classes\",\n \"play\", \"classification\", \"types\", \"datatypes\", \"reset\", or \"help\" for more information.\n\n/
|
183
|
+
expected_debugger_output = /Type \"exit\", \"functions\", \"vars\", \"krt\", \"whereami\", \"facts\", \"resources\", \"classes\",\n \"play\", \"classification\", \"types\", \"datatypes\", \"benchmark\",\n \"reset\", or \"help\" for more information.\n\n/
|
184
184
|
debugger.handle_input(input)
|
185
185
|
expect(output.string).to match(/Ruby Version: #{RUBY_VERSION}\n/)
|
186
186
|
expect(output.string).to match(/Puppet Version: \d.\d.\d\n/)
|
@@ -507,4 +507,33 @@ describe 'PuppetDebugger' do
|
|
507
507
|
end
|
508
508
|
end
|
509
509
|
end
|
510
|
+
|
511
|
+
describe 'benchmark' do
|
512
|
+
let(:input) do
|
513
|
+
"benchmark md5('12345')"
|
514
|
+
end
|
515
|
+
describe 'mode' do
|
516
|
+
before(:each) do
|
517
|
+
debugger.handle_input('benchmark') # enable
|
518
|
+
end
|
519
|
+
it 'enable' do
|
520
|
+
debugger.handle_input("md5('12345')")
|
521
|
+
expect(output.string).to match(/Benchmark\ Mode\ On/)
|
522
|
+
expect(output.string).to match(/Time\ elapsed/)
|
523
|
+
end
|
524
|
+
it 'disable' do
|
525
|
+
debugger.handle_input('benchmark') # disable
|
526
|
+
expect(output.string).to match(/Benchmark\ Mode\ Off/)
|
527
|
+
end
|
528
|
+
end
|
529
|
+
|
530
|
+
describe 'onetime' do
|
531
|
+
it 'run' do
|
532
|
+
debugger.handle_input("benchmark md5('12345')")
|
533
|
+
expect(output.string).to_not match(/Benchmark\ Mode\ On/)
|
534
|
+
expect(output.string).to_not match(/Benchmark\ Mode\ Off/)
|
535
|
+
expect(output.string).to match(/Time\ elapsed/)
|
536
|
+
end
|
537
|
+
end
|
538
|
+
end
|
510
539
|
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-debugger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Osman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.8'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.8'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: facterdb
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.3.8
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.3.8
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: awesome_print
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.6'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.6'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rdoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '3.12'
|
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
68
|
version: '3.12'
|
69
69
|
description: A interactive command line tool for evaluating and debugging the puppet
|
@@ -77,15 +77,15 @@ extra_rdoc_files:
|
|
77
77
|
- LICENSE.txt
|
78
78
|
- README.md
|
79
79
|
files:
|
80
|
-
- .dockerignore
|
81
|
-
- .document
|
82
|
-
- .gitignore
|
83
|
-
- .gitlab-ci.yml
|
84
|
-
- .release_me.yaml
|
85
|
-
- .rspec
|
86
|
-
- .rubocop.yml
|
87
|
-
- .rubocop_todo.yml
|
88
|
-
- .ruby-version
|
80
|
+
- ".dockerignore"
|
81
|
+
- ".document"
|
82
|
+
- ".gitignore"
|
83
|
+
- ".gitlab-ci.yml"
|
84
|
+
- ".release_me.yaml"
|
85
|
+
- ".rspec"
|
86
|
+
- ".rubocop.yml"
|
87
|
+
- ".rubocop_todo.yml"
|
88
|
+
- ".ruby-version"
|
89
89
|
- CHANGELOG.md
|
90
90
|
- DEVELOPMENT.md
|
91
91
|
- Gemfile
|
@@ -142,17 +142,17 @@ require_paths:
|
|
142
142
|
- lib
|
143
143
|
required_ruby_version: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
|
-
- -
|
145
|
+
- - ">="
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
requirements: []
|
154
154
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.
|
155
|
+
rubygems_version: 2.6.11
|
156
156
|
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: A repl based debugger for the puppet language
|