Class: Ra10ke::Validate::Validation
- Inherits:
-
Object
- Object
- Ra10ke::Validate::Validation
- Includes:
- PuppetfileParser
- Defined in:
- lib/ra10ke/validate.rb
Instance Attribute Summary collapse
-
#puppetfile ⇒ Object
readonly
Returns the value of attribute puppetfile.
Instance Method Summary collapse
-
#all_modules ⇒ Array[Hash]
Array of module information and git status.
-
#bad_mods? ⇒ Boolean
-
true if there are any bad mods.
-
-
#initialize(file) ⇒ Validation
constructor
A new instance of Validation.
-
#sorted_mods ⇒ Hash
-
sorts the mods based on good/bad.
-
Methods included from PuppetfileParser
#forge_modules, #git_modules, #modules, #parse_module_args, #process_args
Constructor Details
#initialize(file) ⇒ Validation
37 38 39 40 41 |
# File 'lib/ra10ke/validate.rb', line 37 def initialize(file) file ||= './Puppetfile' @puppetfile = File.(file) abort("Puppetfile does not exist at #{puppetfile}") unless File.readable?(puppetfile) end |
Instance Attribute Details
#puppetfile ⇒ Object (readonly)
Returns the value of attribute puppetfile.
35 36 37 |
# File 'lib/ra10ke/validate.rb', line 35 def puppetfile @puppetfile end |
Instance Method Details
#all_modules ⇒ Array[Hash]
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ra10ke/validate.rb', line 44 def all_modules @all_modules ||= begin r10k_branch = Ra10ke::GitRepo.current_branch(File.dirname(puppetfile)) git_modules(puppetfile).map do |mod| repo = Ra10ke::GitRepo.new(mod[:args][:git]) ref = mod[:args][:ref] || mod[:args][:tag] || mod[:args][:branch] || mod[:args][:commit] # If using control_branch, try to guesstimate what the target branch should be if ref == ':control_branch' ref = ENV['CONTROL_BRANCH'] \ || r10k_branch \ || mod[:args][:default_branch_override] \ || ENV['CONTROL_BRANCH_FALLBACK'] \ || mod[:args][:default_branch] \ || 'main' end valid_ref = repo.valid_ref?(ref) || repo.valid_commit?(mod[:args][:ref]) { name: mod[:name], url: repo.url, ref: ref, valid_url?: repo.valid_url?, valid_ref?: valid_ref, status: valid_ref ? Ra10ke::Validate::GOOD_EMOJI : Ra10ke::Validate::BAD_EMOJI, } end end end |
#bad_mods? ⇒ Boolean
73 74 75 |
# File 'lib/ra10ke/validate.rb', line 73 def bad_mods? all_modules.find_all { |mod| !mod[:valid_ref?] }.count > 0 end |
#sorted_mods ⇒ Hash
78 79 80 |
# File 'lib/ra10ke/validate.rb', line 78 def sorted_mods all_modules.sort_by { |a| a[:valid_ref?] ? 1 : 0 } end |