module ProspectusPuppet::Deps

Helper for automatically adding Puppet deps

Public Instance Methods

extended(other) click to toggle source
# File lib/prospectus_puppet.rb, line 10
def extended(other) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
  dep_list = parse_deps

  other.deps do
    dep_list.each do |x|
      item do
        name x[:name]

        expected do
          github_tag
          repo x[:slug]
          regex(DEP_REGEX)
          filter(DEP_FILTER)
        end

        actual do
          static
          set x[:version]
        end
      end
    end
  end
end

Private Instance Methods

parse_deps() click to toggle source
# File lib/prospectus_puppet.rb, line 36
def parse_deps
  raw_deps.map do |dep|
    {
      name: parse_name(dep),
      slug: parse_slug(dep),
      version: parse_version(dep)
    }
  end
end
parse_name(dep) click to toggle source
# File lib/prospectus_puppet.rb, line 54
def parse_name(dep)
  parse_prefix(dep) + '-' + dep['name'].split('/').last
end
parse_org(dep) click to toggle source
# File lib/prospectus_puppet.rb, line 62
def parse_org(dep)
  dep['name'].split('/').first
end
parse_prefix(dep) click to toggle source
# File lib/prospectus_puppet.rb, line 58
def parse_prefix(dep)
  parse_org(dep) == 'puppetlabs' ? 'puppetlabs' : 'puppet'
end
parse_slug(dep) click to toggle source
# File lib/prospectus_puppet.rb, line 50
def parse_slug(dep)
  parse_org(dep) + '/' + parse_name(dep)
end
parse_version(dep) click to toggle source
# File lib/prospectus_puppet.rb, line 46
def parse_version(dep)
  dep['version_requirement'].sub(/\.x/, '')
end
raw_deps() click to toggle source
# File lib/prospectus_puppet.rb, line 66
def raw_deps
  @raw_deps ||= JSON.parse(File.read('metadata.json'))['dependencies']
end