puppet-debugger 0.12.1 → 0.12.2

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
  SHA1:
3
- metadata.gz: 1d8a6792ac8befb2af4d9769af6b2ef803ae018c
4
- data.tar.gz: d23e13a008ddf75f72883db3e79bab7e6cfb8ef8
3
+ metadata.gz: 1bbafde4d18168b16c4cfb22306b2d793e8e10b6
4
+ data.tar.gz: b3f50cb0d41f2286dfd71dd7837781a04ea693ff
5
5
  SHA512:
6
- metadata.gz: cd3c1d7e97f909563ea3d1fa6f08ff836e8fc16732fd151b6f1ab80fce6fd96c1a9199bcc936cb58302340b40c2dd991aa97b60ff06c0729c0a76067bd00dd94
7
- data.tar.gz: 1006a7f6453775c5d6b8ed307224fad0236c389bd404c475a9d24b4404153652676504d5c315132306888032f3b98ad138b50e3da296c040fd11c4dfb663501b
6
+ metadata.gz: 8b6b9337d3d11a98c03a4ead272bd6f9918d7d5a2a7d8b16b9f82ed337c7eb33eb4366646865e565f7aa8bf7ed9c66f5e30884a70a3aa3313cf30fcfd3048b4d
7
+ data.tar.gz: 4c6fafdbfafd13f1d0260c59bc3def51265969c22fee32a651fb7a6fcd2a0d25bd42fe55fff87db886c43db1cdaf8421f8105ffc9a9e52a67e18ba3621992c4b
data/.gitlab-ci.yml CHANGED
@@ -44,7 +44,7 @@ bump_and_tag:
44
44
  only:
45
45
  - master@puppet-debugger/puppet-debugger
46
46
  script:
47
- - gem install release_me
47
+ - gem install release_me
48
48
  - bump_and_tag
49
49
 
50
50
  #web_trigger_production:
@@ -61,10 +61,10 @@ bump_and_tag:
61
61
  .ruby_22: &ruby22
62
62
  image: ruby:2.2
63
63
  script:
64
- - gem install bundler -v 1.17.3 > /dev/null
65
- - bundle install --without development validate
66
- - bundle exec puppet module install puppetlabs-stdlib
67
- - bundle exec rake spec
64
+ - gem install bundler -v 1.17.3 > /dev/null
65
+ - bundle install --without development validate
66
+ - bundle exec puppet module install puppetlabs-stdlib
67
+ - bundle exec rake spec
68
68
 
69
69
  .ruby_23: &ruby23
70
70
  image: ruby:2.3
@@ -75,7 +75,6 @@ bump_and_tag:
75
75
  .ruby_25: &ruby25
76
76
  image: ruby:2.5
77
77
 
78
-
79
78
  .ruby_26: &ruby26
80
79
  image: ruby:2.6
81
80
 
@@ -91,33 +90,9 @@ gem_production:
91
90
  only:
92
91
  - tags
93
92
 
94
- puppet_43_ruby22:
95
- variables:
96
- PUPPET_GEM_VERSION: "~> 4.3.0"
97
- <<: *puppet_job_def
98
- <<: *ruby22
99
-
100
- puppet_44_ruby22:
101
- variables:
102
- PUPPET_GEM_VERSION: "~> 4.4.0"
103
- <<: *puppet_job_def
104
- <<: *ruby22
105
-
106
- puppet_46_ruby22:
107
- variables:
108
- PUPPET_GEM_VERSION: "~> 4.6.0"
109
- <<: *puppet_job_def
110
- <<: *ruby22
111
-
112
- puppet_47_ruby22:
113
- variables:
114
- PUPPET_GEM_VERSION: "~> 4.7.0"
115
- <<: *puppet_job_def
116
- <<: *ruby22
117
-
118
93
  puppet_410_ruby24:
119
94
  variables:
120
- PUPPET_GEM_VERSION: "~> 4.10.0"
95
+ PUPPET_GEM_VERSION: "~> 4.10"
121
96
  <<: *puppet_job_def
122
97
  <<: *ruby24
123
98
 
@@ -127,13 +102,13 @@ puppet_55_ruby24:
127
102
  <<: *puppet_job_def
128
103
  <<: *ruby24
129
104
 
130
- puppet_60_ruby25:
105
+ puppet_63_ruby25:
131
106
  variables:
132
107
  PUPPET_GEM_VERSION: "~> 6.0"
133
108
  <<: *puppet_job_def
134
109
  <<: *ruby25
135
110
 
136
- puppet_60_ruby26:
111
+ puppet_64_ruby26:
137
112
  variables:
138
113
  PUPPET_GEM_VERSION: "~> 6.4"
139
114
  <<: *puppet_job_def
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 0.12.2
4
+
5
+ - Fixes incorrect puppet namespace when list functions
6
+
3
7
  ## 0.12.1
4
8
 
5
9
  - Fixes issue with command completion
@@ -1,30 +1,30 @@
1
- require 'puppet-debugger/input_responder_plugin'
2
- require 'table_print'
1
+ require "puppet-debugger/input_responder_plugin"
2
+ require "table_print"
3
3
 
4
4
  module PuppetDebugger
5
5
  module InputResponders
6
6
  class Functions < InputResponderPlugin
7
7
  COMMAND_WORDS = %w(functions)
8
- SUMMARY = 'List all the functions available in the environment.'
8
+ SUMMARY = "List all the functions available in the environment."
9
9
  COMMAND_GROUP = :environment
10
10
  FUNC_NATIVE_NAME_REGEX = %r{\Afunction\s([\w\:]+)}
11
11
  FUNC_V4_NAME_REGEX = %r{Puppet\:\:Functions.create_function\s?\(?\:?\'?([\w\:]+)}
12
12
 
13
13
  def run(args = [])
14
- filter = args.first || ''
14
+ filter = args.first || ""
15
15
  TablePrint::Printer.table_print(sorted_list(filter), [:full_name, :mod_name])
16
16
  end
17
17
 
18
- def sorted_list(filter = '')
18
+ def sorted_list(filter = "")
19
19
  search = /#{Regexp.escape(filter)}/
20
- function_map.values.find_all do | v|
20
+ function_map.values.find_all do |v|
21
21
  "#{v[:mod_name]}_#{v[:full_name]}" =~ search
22
- end.sort {|a,b| a[:full_name] <=> b[:full_name]}
22
+ end.sort { |a, b| a[:full_name] <=> b[:full_name] }
23
23
  end
24
24
 
25
25
  # append a () to functions so we know they are functions
26
26
  def func_list
27
- # ideally we should get a list of function names via the puppet loader
27
+ # ideally we should get a list of function names via the puppet loader
28
28
  function_map.map { |name, metadata| "#{metadata[:full_name]}()" }
29
29
  end
30
30
 
@@ -39,7 +39,6 @@ module PuppetDebugger
39
39
  functions
40
40
  end
41
41
 
42
-
43
42
  def lib_dirs(module_dirs = modules_paths)
44
43
  dirs = module_dirs.map do |mod_dir|
45
44
  Dir["#{mod_dir}/*/lib"].entries
@@ -47,38 +46,38 @@ module PuppetDebugger
47
46
  dirs + [puppet_debugger_lib_dir]
48
47
  end
49
48
 
50
-
51
49
  # @return [Array] - returns a array of the parentname and function name
52
50
  def function_obj(file)
53
51
  namespace = nil
54
52
  name = nil
55
53
  if file =~ /\.pp/
56
- File.readlines(file, :encoding => 'UTF-8').find do |line|
54
+ File.readlines(file, :encoding => "UTF-8").find do |line|
57
55
  # TODO: not getting namespace for functio
58
- if line.match(FUNC_NATIVE_NAME_REGEX)
59
- namespace, name = $1.split('::', 2)
56
+ if line.match(FUNC_NATIVE_NAME_REGEX)
57
+ namespace, name = $1.split("::", 2)
60
58
  name = namespace if name.nil?
61
- namespace = '' if namespace == name
59
+ namespace = "" if namespace == name
62
60
  end
63
61
  end
64
- elsif file.include?('lib/puppet/functions')
65
- File.readlines(file, :encoding => 'UTF-8').find do |line|
66
- if line.match(FUNC_V4_NAME_REGEX)
67
- namespace, name = $1.split('::', 2)
62
+ elsif file.include?("lib/puppet/functions")
63
+ File.readlines(file, :encoding => "UTF-8").find do |line|
64
+ if line.match(FUNC_V4_NAME_REGEX)
65
+ namespace, name = $1.split("::", 2)
68
66
  name = namespace if name.nil?
69
- namespace = '' if namespace == name
67
+ namespace = "" if namespace == name
70
68
  end
71
69
  end
72
70
  end
73
- name ||= File.basename(file, File.extname(file))
71
+ name ||= File.basename(file, File.extname(file))
74
72
  match = file.match('\/(?<mod>[\w\-\.]+)\/(lib|functions|manifests)')
75
- summary_match = File.read(file, :encoding => 'UTF-8').match(/@summary\s(.*)/)
73
+ summary_match = File.read(file, :encoding => "UTF-8").match(/@summary\s(.*)/)
76
74
  summary = summary_match[1] if summary_match
77
-
78
- # match = file.match('(?<mod>\w+)\/functions|manifests|lib')
79
- mod_name = match[:mod] unless match.nil?
75
+ # fetch the puppet version if this is a function from puppet gem
76
+ captures = file.match(/(puppet-[\d\.]+)/)
77
+ file_namespace = captures[1] if captures
78
+ mod_name = match.nil? ? file_namespace : match[:mod]
80
79
  full_name = namespace.nil? || namespace.empty? ? name : name.prepend("#{namespace}::")
81
- {namespace: namespace, summary: summary, mod_name: mod_name, name: name, full_name: full_name, file: file}
80
+ { namespace: namespace, summary: summary, mod_name: mod_name, name: name, full_name: full_name, file: file }
82
81
  end
83
82
 
84
83
  private
@@ -96,19 +95,17 @@ module PuppetDebugger
96
95
  # in the future we may want to utilize the puppet loaders to find these things
97
96
  def function_files
98
97
  search_dirs = lib_dirs.map do |lib_dir|
99
- [File.join(lib_dir, 'puppet', 'functions', '**', '*.rb'),
100
- File.join(lib_dir, 'functions', '**', '*.rb'),
101
- File.join(File.dirname(lib_dir), 'functions', '**', '*.pp'),
102
- File.join(lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
98
+ [File.join(lib_dir, "puppet", "functions", "**", "*.rb"),
99
+ File.join(lib_dir, "functions", "**", "*.rb"),
100
+ File.join(File.dirname(lib_dir), "functions", "**", "*.pp"),
101
+ File.join(lib_dir, "puppet", "parser", "functions", "*.rb")]
103
102
  end
104
103
 
105
104
  # add puppet lib directories
106
- search_dirs << [File.join(puppet_lib_dir, 'puppet', 'functions', '**', '*.rb'),
107
- File.join(puppet_lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
105
+ search_dirs << [File.join(puppet_lib_dir, "puppet", "functions", "**", "*.rb"),
106
+ File.join(puppet_lib_dir, "puppet", "parser", "functions", "*.rb")]
108
107
  Dir.glob(search_dirs.flatten)
109
108
  end
110
-
111
-
112
109
  end
113
110
  end
114
111
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PuppetDebugger
4
- VERSION = "0.12.1"
4
+ VERSION = "0.12.2"
5
5
  end
@@ -1,65 +1,73 @@
1
- require 'spec_helper'
2
- require 'puppet-debugger'
3
- require 'puppet-debugger/plugin_test_helper'
1
+ require "spec_helper"
2
+ require "puppet-debugger"
3
+ require "puppet-debugger/plugin_test_helper"
4
4
 
5
5
  describe :functions do
6
- include_examples 'plugin_tests'
6
+ include_examples "plugin_tests"
7
7
 
8
8
  let(:input) do
9
9
  "md5('hello')"
10
10
  end
11
11
 
12
12
  let(:mod_dir) do
13
- File.join(fixtures_dir, 'modules', 'extlib')
13
+ File.join(fixtures_dir, "modules", "extlib")
14
14
  end
15
15
 
16
- it 'runs' do
16
+ it "runs" do
17
17
  expect(plugin.run).to be_a String
18
18
  end
19
19
 
20
- it 'returns functions' do
20
+ it "returns functions" do
21
21
  expect(plugin.function_map).to be_a Hash
22
22
  end
23
23
 
24
- it 'sorted_list' do
24
+ it "sorted_list" do
25
25
  expect(plugin.sorted_list).to be_a Array
26
26
  expect(plugin.sorted_list.first).to be_a Hash
27
27
  end
28
28
 
29
- it 'returns function names' do
29
+ it "returns function names" do
30
30
  expect(plugin.func_list).to be_a Array
31
- expect(plugin.func_list.find {|m| m =~ /md5/ }).to eq('md5()')
31
+ expect(plugin.func_list.find { |m| m =~ /md5/ }).to eq("md5()")
32
32
  end
33
33
 
34
- it 'execute md5' do
34
+ it "execute md5" do
35
35
  debugger_output = /5d41402abc4b2a76b9719d911017c592/
36
36
  debugger.handle_input("md5('hello')")
37
37
  expect(output.string).to match(debugger_output)
38
38
  end
39
39
 
40
- it 'execute swapcase' do
40
+ it "execute swapcase" do
41
41
  debugger_output = /HELLO/
42
42
  debugger.handle_input("swapcase('hello')")
43
43
  expect(output.string).to match(debugger_output)
44
44
  end
45
45
 
46
- it '#function_obj with native function' do
47
- expect(plugin.function_obj(File.join(mod_dir, 'functions', 'dir_split.pp'))).to eq(
48
- {:file=>File.join(mod_dir, 'functions', 'dir_split.pp'), :mod_name=>"extlib",
49
- :full_name=>"extlib::dir_split", :name=>"extlib::dir_split", :namespace=>'extlib',
50
- :summary => "Splits the given directory or directories into individual paths."}
51
- )
46
+ it "#function_obj with native function" do
47
+ expect(plugin.function_obj(File.join(mod_dir, "functions", "dir_split.pp"))).to eq(
48
+ { :file => File.join(mod_dir, "functions", "dir_split.pp"), :mod_name => "extlib",
49
+ :full_name => "extlib::dir_split", :name => "extlib::dir_split", :namespace => "extlib",
50
+ :summary => "Splits the given directory or directories into individual paths." }
51
+ )
52
52
  end
53
53
 
54
- it '#function_obj ruby v4 without namespace' do
55
- expect(plugin.function_obj(File.join(mod_dir,'lib', 'puppet', 'functions', 'echo.rb')))
56
- .to eq({:file=>File.join(mod_dir,'lib', 'puppet', 'functions', 'echo.rb'), :mod_name=>"extlib",
57
- :full_name=>"echo", :name=>"echo", :namespace=>"", :summary => "DEPRECATED. Use the namespaced function [`extlib::echo`](#extlibecho) instead."})
54
+ it "#function_obj ruby v4 without namespace" do
55
+ expect(plugin.function_obj(File.join(mod_dir, "lib", "puppet", "functions", "echo.rb"))).to eq({ :file => File.join(mod_dir, "lib", "puppet", "functions", "echo.rb"), :mod_name => "extlib",
56
+ :full_name => "echo", :name => "echo", :namespace => "", :summary => "DEPRECATED. Use the namespaced function [`extlib::echo`](#extlibecho) instead." })
58
57
  end
59
58
 
60
- it '#function_obj ruby v4 and namespace' do
61
- expect(plugin.function_obj(File.join(mod_dir,'lib', 'puppet', 'functions', 'extlib', 'echo.rb')))
62
- .to eq({:file=>File.join(mod_dir, 'lib', 'puppet', 'functions', 'extlib', 'echo.rb'), :mod_name=>"extlib",
63
- :full_name=>"extlib::echo", :name=>"extlib::echo", :namespace=>'extlib', :summary => nil})
59
+ it "#function_obj ruby v4 and namespace" do
60
+ expect(plugin.function_obj(File.join(mod_dir, "lib", "puppet", "functions", "extlib", "echo.rb"))).to eq({ :file => File.join(mod_dir, "lib", "puppet", "functions", "extlib", "echo.rb"), :mod_name => "extlib",
61
+ :full_name => "extlib::echo", :name => "extlib::echo", :namespace => "extlib", :summary => nil })
62
+ end
63
+
64
+ it "#function_obj has puppet namespace" do
65
+ file, _ = Puppet::Functions.method(:create_function).source_location
66
+ dir = File.dirname(file)
67
+ f_obj = plugin.function_obj(File.join(dir, "functions", "include.rb"))
68
+ expect(f_obj[:mod_name]).to match(/puppet-.*/)
69
+ expect(f_obj[:name]).to eq("include")
70
+ expect(f_obj[:full_name]).to eq("include")
71
+ expect(f_obj[:summary]).to be_nil
64
72
  end
65
73
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-debugger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Osman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-24 00:00:00.000000000 Z
11
+ date: 2019-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: table_print