ra10ke 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -82,20 +82,19 @@ module Ra10ke
82
82
  # :sha=>"fcc0532bbc5a5b65f3941738339e9cc7e3d767ce", :ref=>"refs/pull/249/head", :type=>:pull, :subtype=>:head, :name=>"249"},
83
83
  # :sha=>"8d54891fa5df75890ee15d53080c2a81b4960f92", :ref=>"refs/pull/267/head", :type=>:pull, :subtype=>:head, :name=>"267"}]
84
84
  def all_refs
85
- @all_refs ||= begin
86
- remote_refs.each_with_object([]) do |line, refs|
87
- sha, ref = line.split("\t")
88
- next refs if line.include?('redirecting')
89
- next refs if sha.eql?('ref: refs/heads/master')
90
- _, type, name, subtype = ref.chomp.split('/')
91
- next refs unless name
92
-
93
- type = :tag if type.eql?('tags')
94
- type = type.to_sym
95
- subtype = subtype.to_sym if subtype
96
- type = :branch if type.eql?(:heads)
97
- refs << { sha: sha, ref: ref.chomp, type: type, subtype: subtype, name: name }
98
- end
85
+ @all_refs ||= remote_refs.each_with_object([]) do |line, refs|
86
+ sha, ref = line.split("\t")
87
+ next refs if line.include?('redirecting')
88
+ next refs if sha.eql?('ref: refs/heads/master')
89
+
90
+ _, type, name, subtype = ref.chomp.split('/')
91
+ next refs unless name
92
+
93
+ type = :tag if type.eql?('tags')
94
+ type = type.to_sym
95
+ subtype = subtype.to_sym if subtype
96
+ type = :branch if type.eql?(:heads)
97
+ refs << { sha: sha, ref: ref.chomp, type: type, subtype: subtype, name: name }
99
98
  end
100
99
  end
101
100
 
@@ -105,10 +104,10 @@ module Ra10ke
105
104
  # @return [String] the matching ref_name or nil
106
105
  def get_ref_like(ref_name)
107
106
  return nil unless valid_url?
108
- ref = all_refs.find do |ref|
107
+
108
+ all_refs.find do |ref|
109
109
  ref[:name].include?(ref_name)
110
110
  end
111
- ref
112
111
  end
113
112
 
114
113
  # useful for mocking easily
@@ -1,27 +1,27 @@
1
1
  module Ra10ke::Install
2
2
  def define_task_install(*_args)
3
- desc "Install modules specified in Puppetfile"
3
+ desc 'Install modules specified in Puppetfile'
4
4
  task :install do
5
5
  require 'r10k/puppetfile'
6
6
 
7
7
  puppetfile = get_puppetfile
8
8
  puppetfile.load!
9
9
 
10
- puts "Processing Puppetfile for fixtures"
10
+ puts 'Processing Puppetfile for fixtures'
11
11
  puppetfile.modules.each do |mod|
12
12
  if mod.status == :insync
13
13
  puts "Skipping #{mod.name} (#{mod.version}) already in sync"
14
14
  else
15
- if mod.status == :absent
16
- msg = "installed #{mod.name}"
17
- else
18
- msg = "updated #{mod.name} from #{mod.version} to"
19
- end
15
+ msg = if mod.status == :absent
16
+ "installed #{mod.name}"
17
+ else
18
+ "updated #{mod.name} from #{mod.version} to"
19
+ end
20
20
  mod.sync
21
- if mod.status != :insync
22
- puts "Failed to sync #{mod.name}".red
23
- else
21
+ if mod.status == :insync
24
22
  puts "Successfully #{msg} #{mod.version}".green
23
+ else
24
+ puts "Failed to sync #{mod.name}".red
25
25
  end
26
26
  end
27
27
  end
@@ -18,7 +18,7 @@ class String
18
18
  colorize(33)
19
19
  end
20
20
 
21
- # removes specified markes from string.
21
+ # removes specified markes from string.
22
22
  # @return [String] - the string with markers removed
23
23
  def strip_comment(markers = ['#', "\n"])
24
24
  re = Regexp.union(markers)
@@ -1,90 +1,90 @@
1
- # it might be desirable to parse the Puppetfile as a string instead of evaling it.
1
+ # it might be desirable to parse the Puppetfile as a string instead of evaling it.
2
2
  # this module allows you to do just that.
3
3
  require 'ra10ke/monkey_patches'
4
4
 
5
5
  module Ra10ke
6
- module PuppetfileParser
7
-
8
- # @return [Array] - returns a array of hashes that contain modules with a git source
9
- def git_modules(file = puppetfile)
10
- modules(file).find_all do |mod|
11
- mod[:args].key?(:git)
12
- end
6
+ module PuppetfileParser
7
+ # @return [Array] - returns a array of hashes that contain modules with a git source
8
+ def git_modules(file = puppetfile)
9
+ modules(file).find_all do |mod|
10
+ mod[:args].key?(:git)
13
11
  end
12
+ end
14
13
 
15
- # @return [Array] - returns a array of hashes that contain modules from the Forge
16
- def forge_modules(file = puppetfile)
17
- modules(file).reject do |mod|
18
- mod[:args].key?(:git)
19
- end
14
+ # @return [Array] - returns a array of hashes that contain modules from the Forge
15
+ def forge_modules(file = puppetfile)
16
+ modules(file).reject do |mod|
17
+ mod[:args].key?(:git)
20
18
  end
19
+ end
21
20
 
22
- # @param puppetfile [String] - the absolute path to the puppetfile
23
- # @return [Array] - returns an array of module hashes that represent the puppetfile
24
- # @example
25
- # [{:namespace=>"puppetlabs", :name=>"stdlib", :args=>[]},
26
- # {:namespace=>"petems", :name=>"swap_file", :args=>["'4.0.0'"]}]
27
- def modules(puppetfile)
28
- @modules ||= begin
29
- return [] unless File.exist?(puppetfile)
30
- all_lines = File.read(puppetfile).lines.map(&:strip_comment)
31
- # remove comments from all the lines
32
- lines_without_comments = all_lines.reject { |line| line.match(/#.*\n/) || line.empty? }.join("\n")
33
- lines_without_comments.split(/^mod/).map do |line|
34
-
35
- next nil if line =~ /^forge/
36
- next nil if line.empty?
21
+ # @param puppetfile [String] - the absolute path to the puppetfile
22
+ # @return [Array] - returns an array of module hashes that represent the puppetfile
23
+ # @example
24
+ # [{:namespace=>"puppetlabs", :name=>"stdlib", :args=>[]},
25
+ # {:namespace=>"petems", :name=>"swap_file", :args=>["'4.0.0'"]}]
26
+ def modules(puppetfile)
27
+ @modules ||= begin
28
+ return [] unless File.exist?(puppetfile)
37
29
 
38
- parse_module_args(line)
39
- end.compact.uniq
40
- end
41
- end
30
+ all_lines = File.read(puppetfile).lines.map(&:strip_comment)
31
+ # remove comments from all the lines
32
+ lines_without_comments = all_lines.reject { |line| line.match(/#.*\n/) || line.empty? }.join("\n")
33
+ lines_without_comments.split(/^mod/).map do |line|
34
+ next nil if /^forge/.match?(line)
35
+ next nil if line.empty?
42
36
 
43
- # @param data [String] - the string to parse the puppetfile args out of
44
- # @return [Array] - an array of arguments in hash form
45
- # @example
46
- # {:namespace=>"puppetlabs", :name=>"stdlib", :args=>[]}
47
- # {:namespace=>"petems", :name=>"swap_file", :args=>["'4.0.0'"]}
48
- def parse_module_args(data)
49
- return {} if data.empty?
50
- args = data.split(',').map(&:strip)
51
- # we can't guarantee that there will be a namespace when git is used
52
- # remove quotes and dash and slash
53
- namespace, name = args.shift.gsub(/'|"/, '').split(%r{-|/})
54
- name ||= namespace
55
- namespace = nil if namespace == name
56
- {
57
- namespace: namespace,
58
- name: name,
59
- args: process_args(args)
60
- }
37
+ parse_module_args(line)
38
+ end.compact.uniq
61
39
  end
40
+ end
41
+
42
+ # @param data [String] - the string to parse the puppetfile args out of
43
+ # @return [Array] - an array of arguments in hash form
44
+ # @example
45
+ # {:namespace=>"puppetlabs", :name=>"stdlib", :args=>[]}
46
+ # {:namespace=>"petems", :name=>"swap_file", :args=>["'4.0.0'"]}
47
+ def parse_module_args(data)
48
+ return {} if data.empty?
49
+
50
+ args = data.split(',').map(&:strip)
51
+ # we can't guarantee that there will be a namespace when git is used
52
+ # remove quotes and dash and slash
53
+ namespace, name = args.shift.gsub(/'|"/, '').split(%r{-|/})
54
+ name ||= namespace
55
+ namespace = nil if namespace == name
56
+ {
57
+ namespace: namespace,
58
+ name: name,
59
+ args: process_args(args),
60
+ }
61
+ end
62
62
 
63
- # @return [Array] - returns an array of hashes with the args in key value pairs
64
- # @param [Array] - the arguments processed from each entry in the puppetfile
65
- # @example
66
- # [{:args=>[], :name=>"razor", :namespace=>"puppetlabs"},
67
- # {:args=>[{:version=>"0.0.3"}], :name=>"ntp", :namespace=>"puppetlabs"},
68
- # {:args=>[], :name=>"inifile", :namespace=>"puppetlabs"},
69
- # {:args=>
70
- # [{:git=>"https://github.com/nwops/reportslack.git"}, {:ref=>"1.0.20"}],
71
- # :name=>"reportslack",
72
- # :namespace=>"nwops"},
73
- # {:args=>{:git=>"git://github.com/puppetlabs/puppetlabs-apt.git"},
74
- # :name=>"apt",
75
- # :namespace=>nil}
76
- # ]
77
- def process_args(args)
78
- results = {}
79
- args.each do |arg|
80
- a = arg.gsub(/'|"/, '').split(/\A\:|\:\s|\=\>/).map(&:strip).reject(&:empty?)
81
- if a.count < 2
82
- results[:version] = a.first
83
- else
84
- results[a.first.to_sym] = a.last
85
- end
63
+ # @return [Array] - returns an array of hashes with the args in key value pairs
64
+ # @param [Array] - the arguments processed from each entry in the puppetfile
65
+ # @example
66
+ # [{:args=>[], :name=>"razor", :namespace=>"puppetlabs"},
67
+ # {:args=>[{:version=>"0.0.3"}], :name=>"ntp", :namespace=>"puppetlabs"},
68
+ # {:args=>[], :name=>"inifile", :namespace=>"puppetlabs"},
69
+ # {:args=>
70
+ # [{:git=>"https://github.com/nwops/reportslack.git"}, {:ref=>"1.0.20"}],
71
+ # :name=>"reportslack",
72
+ # :namespace=>"nwops"},
73
+ # {:args=>{:git=>"git://github.com/puppetlabs/puppetlabs-apt.git"},
74
+ # :name=>"apt",
75
+ # :namespace=>nil}
76
+ # ]
77
+ def process_args(args)
78
+ results = {}
79
+ args.each do |arg|
80
+ a = arg.gsub(/'|"/, '').split(/\A:|:\s|=>/).map(&:strip).reject(&:empty?)
81
+ if a.count < 2
82
+ results[:version] = a.first
83
+ else
84
+ results[a.first.to_sym] = a.last
86
85
  end
87
- results
88
86
  end
87
+ results
89
88
  end
89
+ end
90
90
  end
data/lib/ra10ke/solve.rb CHANGED
@@ -27,18 +27,16 @@ module Ra10ke::Solve
27
27
  PuppetForge.user_agent = "ra10ke/#{Ra10ke::VERSION}"
28
28
  puppetfile = get_puppetfile
29
29
  puppetfile.load!
30
- PuppetForge.host = puppetfile.forge if puppetfile.forge =~ /^http/
30
+ PuppetForge.host = puppetfile.forge if /^http/.match?(puppetfile.forge)
31
31
 
32
32
  # ignore file allows for "don't tell me about this"
33
33
  ignore_modules = []
34
- if File.exist?('.r10kignore')
35
- ignore_modules = File.readlines('.r10kignore').each(&:chomp!)
36
- end
34
+ ignore_modules = File.readlines('.r10kignore').each(&:chomp!) if File.exist?('.r10kignore')
37
35
  # Actual new logic begins here:
38
36
  cache = (ENV['XDG_CACHE_DIR'] || File.expand_path('~/.cache'))
39
37
 
40
38
  FileUtils.mkdir_p(cache)
41
-
39
+
42
40
  # Metadata cache, since the Forge is slow:
43
41
  @metadata_cache = YAML::Store.new File.join(cache, 'ra10ke.metadata_cache')
44
42
  # The graph of available module versions
@@ -54,7 +52,8 @@ module Ra10ke::Solve
54
52
 
55
53
  puppetfile.modules.each do |puppet_module|
56
54
  next if ignore_modules.include? puppet_module.title
57
- if puppet_module.class == R10K::Module::Forge
55
+
56
+ if puppet_module.instance_of?(R10K::Module::Forge)
58
57
  module_name = puppet_module.title.tr('/', '-')
59
58
  installed_version = puppet_module.expected_version
60
59
  puts "Processing Forge module #{module_name}-#{installed_version}"
@@ -81,7 +80,8 @@ module Ra10ke::Solve
81
80
  add_reqs_to_graph(mod, meta)
82
81
  end
83
82
 
84
- next unless puppet_module.class == R10K::Module::Git
83
+ next unless puppet_module.instance_of?(R10K::Module::Git)
84
+
85
85
  # This downloads the git module to modules/modulename
86
86
  meta = fetch_git_metadata(puppet_module)
87
87
  version = get_key_or_sym(meta, :version)
@@ -97,9 +97,7 @@ module Ra10ke::Solve
97
97
  end
98
98
  puts
99
99
  puts 'Resolving dependencies...'
100
- if allow_major_bump
101
- puts 'WARNING: Potentially breaking updates are allowed for this resolution'
102
- end
100
+ puts 'WARNING: Potentially breaking updates are allowed for this resolution' if allow_major_bump
103
101
  result = Solve.it!(@graph, @demands, sorted: true)
104
102
  puts
105
103
  print_module_diff(@current_modules, result)
@@ -130,7 +128,7 @@ module Ra10ke::Solve
130
128
  return {
131
129
  version: '0.0.0',
132
130
  name: puppet_module.title,
133
- dependencies: []
131
+ dependencies: [],
134
132
  }
135
133
  end
136
134
  metadata = R10K::Module::MetadataFile.new(metadata_path)
@@ -138,7 +136,7 @@ module Ra10ke::Solve
138
136
  {
139
137
  version: metadata.version,
140
138
  name: metadata.name,
141
- dependencies: metadata.dependencies
139
+ dependencies: metadata.dependencies,
142
140
  }
143
141
  end
144
142
 
@@ -150,7 +148,7 @@ module Ra10ke::Solve
150
148
  # At least puppet-extlib has malformed metadata
151
149
  def get_version_req(dep)
152
150
  req = get_key_or_sym(dep, :version_requirement)
153
- req = get_key_or_sym(dep, :version_range) unless req
151
+ req ||= get_key_or_sym(dep, :version_range)
154
152
  req
155
153
  end
156
154
 
@@ -186,17 +184,14 @@ module Ra10ke::Solve
186
184
  # actually ask the solver for the versioned thing
187
185
  @demands.add(name) unless no_demands
188
186
  ver = get_version_req(dep)
189
- unless ver
190
- # no version specified, so anything will do
191
- ver = '>=0.0.0'
192
- end
193
- ver.split(/(?=[<])/).each do |bound|
187
+ ver ||= '>=0.0.0'
188
+ ver.split(/(?=<)/).each do |bound|
194
189
  bound.strip!
195
190
  v = begin
196
- Semverse::Constraint.new(bound)
197
- rescue
198
- nil
199
- end
191
+ Semverse::Constraint.new(bound)
192
+ rescue StandardError
193
+ nil
194
+ end
200
195
  if v
201
196
  artifact.depends(name, v.to_s)
202
197
  else
@@ -206,14 +201,16 @@ module Ra10ke::Solve
206
201
  # Find the dependency in the forge, unless it's already been processed
207
202
  # and add its releases to the global graph
208
203
  next unless @processed_modules.add?(name)
204
+
209
205
  puts "Fetching module info for #{name}"
210
206
  mod = begin
211
- PuppetForge::Module.find(name)
212
- rescue
213
- # It's probably a git module
214
- nil
215
- end
207
+ PuppetForge::Module.find(name)
208
+ rescue StandardError
209
+ # It's probably a git module
210
+ nil
211
+ end
216
212
  next unless mod # Git module, or non-forge dependency. Skip to next for now.
213
+
217
214
  # Fetching metadata for all releases takes ages (which is weird, since it's mostly static info)
218
215
  mod.releases.take(FETCH_LIMIT).each do |rel|
219
216
  meta = get_release_metadata(name, rel)
data/lib/ra10ke/syntax.rb CHANGED
@@ -1,18 +1,16 @@
1
1
  module Ra10ke::Syntax
2
2
  def define_task_syntax(*_args)
3
- desc "Syntax check Puppetfile"
3
+ desc 'Syntax check Puppetfile'
4
4
  task :syntax do
5
5
  require 'r10k/action/puppetfile/check'
6
6
 
7
7
  puppetfile = R10K::Action::Puppetfile::Check.new({
8
- :root => @basedir,
9
- :moduledir => @moduledir,
10
- :puppetfile => @puppetfile_path
11
- }, '')
8
+ root: @basedir,
9
+ moduledir: @moduledir,
10
+ puppetfile: @puppetfile_path,
11
+ }, '')
12
12
 
13
- unless puppetfile.call
14
- abort("Puppetfile syntax check failed")
15
- end
13
+ abort('Puppetfile syntax check failed') unless puppetfile.call
16
14
  end
17
15
  end
18
16
  end
@@ -8,7 +8,6 @@ require 'ra10ke/git_repo'
8
8
 
9
9
  module Ra10ke
10
10
  module Validate
11
-
12
11
  GOOD_EMOJI = ENV['GOOD_EMOJI'] || '👍'
13
12
  BAD_EMOJI = ENV['BAD_EMOJI'] || '😨'
14
13
 
@@ -64,7 +63,7 @@ module Ra10ke
64
63
  ref: ref,
65
64
  valid_url?: repo.valid_url?,
66
65
  valid_ref?: valid_ref,
67
- status: valid_ref ? Ra10ke::Validate::GOOD_EMOJI : Ra10ke::Validate::BAD_EMOJI
66
+ status: valid_ref ? Ra10ke::Validate::GOOD_EMOJI : Ra10ke::Validate::BAD_EMOJI,
68
67
  }
69
68
  end
70
69
  end
@@ -1,3 +1,3 @@
1
1
  module Ra10ke
2
- VERSION = "2.0.0"
2
+ VERSION = '3.0.0'
3
3
  end
data/lib/ra10ke.rb CHANGED
@@ -48,7 +48,8 @@ module Ra10ke
48
48
  def get_puppetfile
49
49
  R10K::Puppetfile.new(@basedir, @moduledir, @puppetfile_path, @puppetfile_name, @force)
50
50
  rescue ArgumentError # R10k < 2.6.0
51
- R10K::Puppetfile.new(@basedir, @moduledir, @puppetfile_path || File.join(@basedir, @puppetfile_name || 'Puppetfile'))
51
+ R10K::Puppetfile.new(@basedir, @moduledir,
52
+ @puppetfile_path || File.join(@basedir, @puppetfile_name || 'Puppetfile'))
52
53
  end
53
54
  end
54
55
  end
data/ra10ke.gemspec CHANGED
@@ -1,30 +1,30 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'ra10ke/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "ra10ke"
6
+ spec.name = 'ra10ke'
7
7
  spec.version = Ra10ke::VERSION
8
- spec.authors = ["Theo Chatzimichos", "Vox Pupuli"]
9
- spec.email = ["voxpupuli@groups.io"]
10
- spec.description = %q{R10K and Puppetfile rake tasks}
11
- spec.summary = %q{Syntax check for the Puppetfile, check for outdated installed puppet modules}
12
- spec.homepage = "https://github.com/voxpupuli/ra10ke"
13
- spec.license = "MIT"
8
+ spec.authors = ['Theo Chatzimichos', 'Vox Pupuli']
9
+ spec.email = ['voxpupuli@groups.io']
10
+ spec.description = 'R10K and Puppetfile rake tasks'
11
+ spec.summary = 'Syntax check for the Puppetfile, check for outdated installed puppet modules'
12
+ spec.homepage = 'https://github.com/voxpupuli/ra10ke'
13
+ spec.license = 'MIT'
14
14
 
15
15
  spec.files = `git ls-files`.split($/)
16
- spec.require_paths = ["lib"]
17
- spec.required_ruby_version = '>= 2.6.0'
16
+ spec.require_paths = ['lib']
17
+ spec.required_ruby_version = '>= 2.7.0'
18
18
 
19
- spec.add_dependency "rake"
20
- spec.add_dependency "puppet_forge"
21
- spec.add_dependency "r10k", '>= 2.6.5'
22
- spec.add_dependency "git"
23
- spec.add_dependency "solve"
24
- spec.add_dependency 'semverse', '>= 2.0'
19
+ spec.add_dependency 'git', '~> 1.18'
20
+ spec.add_dependency 'puppet_forge', '~> 5.0', '>= 5.0.1'
21
+ spec.add_dependency 'r10k', '>= 2.6.5', '< 5'
22
+ spec.add_dependency 'rake', '~> 13.0', '>= 13.0.6'
23
+ spec.add_dependency 'semverse', '>= 2.0', '< 4'
24
+ spec.add_dependency 'solve', '~> 4.0', '>= 4.0.4'
25
25
  spec.add_dependency 'table_print', '~> 1.5.6'
26
+ spec.add_development_dependency 'pry', '~> 0.14.2'
26
27
  spec.add_development_dependency 'rspec', '~> 3.6'
27
- spec.add_development_dependency 'pry'
28
- spec.add_development_dependency 'simplecov'
28
+ spec.add_development_dependency 'simplecov', '~> 0.22.0'
29
+ spec.add_development_dependency 'voxpupuli-rubocop', '~> 2.0.0'
29
30
  end
30
-
@@ -5,8 +5,8 @@ mod 'puppet/ferm', :latest
5
5
  mod 'puppet/borg', :latest
6
6
  mod 'puppet/wireguard', :latest
7
7
  mod 'puppet/bird', :latest
8
- mod 'herculesteam/augeasproviders_pam', :latest
9
- mod 'herculesteam/augeasproviders_shellvar', :latest
8
+ mod 'puppet/augeasproviders_pam', :latest
9
+ mod 'puppet/augeasproviders_shellvar', :latest
10
10
  mod 'puppetlabs/vcsrepo', :latest
11
11
  mod 'saz/ssh', :latest
12
12
  mod 'puppet/r10k', :latest
@@ -22,8 +22,8 @@ mod 'theforeman/foreman', :latest
22
22
  mod 'theforeman/puppet', :latest
23
23
  mod 'theforeman/foreman_proxy', :latest
24
24
  mod 'puppet/nftables', :latest
25
- mod 'herculesteam/augeasproviders_sysctl', :latest
26
- mod 'camptocamp/catalog_diff', :latest
25
+ mod 'puppet/augeasproviders_sysctl', :latest
26
+ mod 'puppet/catalog_diff', :latest
27
27
  mod 'puppet/unattended_upgrades', :latest
28
28
  mod 'puppet/selinux', :latest
29
29
  mod 'choria/choria', :latest
@@ -34,7 +34,7 @@ mod 'jsok/vault',
34
34
  ref: 'test'
35
35
 
36
36
  # dependencies
37
- mod 'herculesteam/augeasproviders_core', :latest
37
+ mod 'puppet/augeasproviders_core', :latest
38
38
  mod 'puppetlabs/stdlib', :latest
39
39
  mod 'choria/mcollective', :latest
40
40
  mod 'puppetlabs/concat', :latest
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'r10k/puppetfile'
3
4
  require 'spec_helper'
4
5
  require 'ra10ke/dependencies'
@@ -8,7 +9,7 @@ RSpec::Mocks.configuration.allow_message_expectations_on_nil = true
8
9
 
9
10
  RSpec.describe 'Ra10ke::Dependencies::Verification' do
10
11
  let(:instance) do
11
- pfile = R10K::Puppetfile.new(File.basename(puppetfile), nil,puppetfile, nil, false)
12
+ pfile = R10K::Puppetfile.new(File.basename(puppetfile), nil, puppetfile, nil, false)
12
13
  Ra10ke::Dependencies::Verification.new(pfile)
13
14
  end
14
15
 
@@ -20,8 +21,9 @@ RSpec.describe 'Ra10ke::Dependencies::Verification' do
20
21
  it 'default contains semver' do
21
22
  expect(Ra10ke::Dependencies::Verification.version_formats).to have_key(:semver)
22
23
  end
24
+
23
25
  it 'add new version format' do
24
- Ra10ke::Dependencies::Verification.register_version_format(:test) do |tags|
26
+ Ra10ke::Dependencies::Verification.register_version_format(:test) do |_tags|
25
27
  nil
26
28
  end
27
29
  expect(Ra10ke::Dependencies::Verification.version_formats).to have_key(:test)
@@ -30,10 +32,10 @@ RSpec.describe 'Ra10ke::Dependencies::Verification' do
30
32
 
31
33
  context 'show output in table format' do
32
34
  let(:instance) do
33
- pfile = R10K::Puppetfile.new(File.basename(puppetfile), nil,puppetfile, nil, false)
35
+ pfile = R10K::Puppetfile.new(File.basename(puppetfile), nil, puppetfile, nil, false)
34
36
  Ra10ke::Dependencies::Verification.new(pfile)
35
37
  end
36
-
38
+
37
39
  let(:puppetfile) do
38
40
  File.join(fixtures_dir, 'Puppetfile')
39
41
  end
@@ -49,26 +51,24 @@ RSpec.describe 'Ra10ke::Dependencies::Verification' do
49
51
  it 'show dependencies as table' do
50
52
  instance.print_table(processed_modules)
51
53
  end
52
-
53
54
  end
54
55
 
55
56
  context 'get_latest_ref' do
56
-
57
57
  context 'find latest semver tag' do
58
58
  let(:latest_tag) do
59
- 'v1.1.0'
59
+ 'v1.1.0'
60
60
  end
61
61
  let(:test_tags) do
62
62
  {
63
- 'v1.0.0' => nil,
63
+ 'v1.0.0' => nil,
64
64
  latest_tag => nil,
65
65
  }
66
66
  end
67
67
 
68
68
  it do
69
69
  expect(instance.get_latest_ref({
70
- 'tags' => test_tags,
71
- })).to eq(latest_tag)
70
+ 'tags' => test_tags,
71
+ })).to eq(latest_tag)
72
72
  end
73
73
  end
74
74
 
@@ -78,7 +78,7 @@ RSpec.describe 'Ra10ke::Dependencies::Verification' do
78
78
  end
79
79
  let(:test_tags) do
80
80
  {
81
- 'dev' => nil,
81
+ 'dev' => nil,
82
82
  latest_tag => nil,
83
83
  }
84
84
  end
@@ -88,20 +88,19 @@ RSpec.describe 'Ra10ke::Dependencies::Verification' do
88
88
  tags.detect { |tag| tag == latest_tag }
89
89
  end
90
90
  expect(instance.get_latest_ref({
91
- 'tags' => test_tags,
92
- })).to eq(latest_tag)
91
+ 'tags' => test_tags,
92
+ })).to eq(latest_tag)
93
93
  end
94
94
  end
95
95
 
96
96
  context 'convert to ref' do
97
-
98
97
  it 'run rake task' do
99
98
  output_conversion = File.read(File.join(fixtures_dir, 'Puppetfile_git_conversion'))
100
99
  require 'ra10ke'
101
100
  Ra10ke::RakeTask.new do |t|
102
101
  t.basedir = fixtures_dir
103
102
  end
104
- expect{Rake::Task['r10k:print_git_conversion'].invoke}.to output(output_conversion).to_stdout
103
+ expect { Rake::Task['r10k:print_git_conversion'].invoke }.to output(output_conversion).to_stdout
105
104
  end
106
105
  end
107
106
  end
@@ -14,21 +14,24 @@ RSpec.describe 'Ra10ke::Deprecation::Validation' do
14
14
  end
15
15
 
16
16
  it 'only checks forge modules' do
17
- expect(PuppetForge::Module).to_not receive(:find).with('puppet')
17
+ expect(PuppetForge::Module).not_to receive(:find).with('puppet')
18
18
  allow(PuppetForge::Module).to receive(:find).and_raise(Faraday::ResourceNotFound.new(nil))
19
19
  expect(instance.deprecated_modules.count).to eq(0)
20
20
  end
21
21
 
22
22
  it 'handles deprecated modules' do
23
- expect(PuppetForge::Module).to receive(:find).with('puppetlabs-ruby').and_return(double(slug: 'puppetlabs-ruby', deprecated_at: '2021-04-22 10:29:42 -0700'))
23
+ expect(PuppetForge::Module).to receive(:find).with('puppetlabs-ruby').and_return(double(slug: 'puppetlabs-ruby',
24
+ deprecated_at: '2021-04-22 10:29:42 -0700'))
24
25
  allow(PuppetForge::Module).to receive(:find).and_return(double(slug: 'module-module', deprecated_at: nil))
25
26
 
26
27
  expect(instance.bad_mods?).to eq(true)
27
- expect(instance.deprecated_modules.first).to eq(name: 'puppetlabs-ruby', deprecated_at: Time.parse('2021-04-22 10:29:42 -0700'))
28
+ expect(instance.deprecated_modules.first).to eq(name: 'puppetlabs-ruby',
29
+ deprecated_at: Time.parse('2021-04-22 10:29:42 -0700'))
28
30
  end
29
31
 
30
32
  it 'handles missing modules' do
31
- expect(PuppetForge::Module).to receive(:find).with('choria-choria').and_return(double(slug: 'choria-choria', deprecated_at: nil))
33
+ expect(PuppetForge::Module).to receive(:find).with('choria-choria').and_return(double(slug: 'choria-choria',
34
+ deprecated_at: nil))
32
35
  expect(PuppetForge::Module).to receive(:find).with('puppetlabs-ruby').and_raise(Faraday::ResourceNotFound.new(nil))
33
36
  allow(PuppetForge::Module).to receive(:find).and_return(double(slug: 'module-module', deprecated_at: nil))
34
37