class PuppetLint::Plugins

Public: Various methods that implement puppet-lint's plugin system

Examples

PuppetLint::Plugins.load_spec_helper

Public Class Methods

load_from_gems() click to toggle source

Internal: Find any gems containing puppet-lint plugins and load them.

Returns nothing.

# File lib/puppet-lint/plugins.rb, line 13
def self.load_from_gems
  gem_directories.select { |path|
    (path + 'puppet-lint/plugins').directory?
  }.each do |gem_path|
    Dir["#{(gem_path + 'puppet-lint/plugins').to_s}/*.rb"].each do |file|
      load file
    end
  end
end
load_spec_helper() click to toggle source

Public: Load the puppet-lint spec_helper.rb

Returns nothings.

# File lib/puppet-lint/plugins.rb, line 26
def self.load_spec_helper
  gemspec = gemspecs.select { |spec| spec.name == 'puppet-lint' }.first
  load Pathname.new(gemspec.full_gem_path) + 'spec/spec_helper.rb'
end

Private Class Methods

gem_directories() click to toggle source

Internal: Retrieve a list of available gem paths from RubyGems.

Returns an Array of Pathname objects.

# File lib/puppet-lint/plugins.rb, line 52
def self.gem_directories
  if has_rubygems?
    gemspecs.reject { |spec| spec.name == 'puppet-lint' }.map do |spec|
      Pathname.new(spec.full_gem_path) + 'lib'
    end
  else
    []
  end
end
gemspecs() click to toggle source

Internal: Retrieve a list of avaliable gemspecs.

Returns an Array of Gem::Specification objects.

# File lib/puppet-lint/plugins.rb, line 41
def self.gemspecs
  @gemspecs ||= if Gem::Specification.respond_to?(:latest_specs)
    Gem::Specification.latest_specs
  else
    Gem.searcher.init_gemspecs
  end
end
has_rubygems?() click to toggle source

Internal: Check if RubyGems is loaded and available.

Returns true if RubyGems is available, false if not.

# File lib/puppet-lint/plugins.rb, line 34
def self.has_rubygems?
  defined? ::Gem
end