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 12 def self.load_from_gems gem_directories.each do |directory| path = directory + 'puppet-lint/plugins' next unless path.directory? Dir["#{path}/**/*.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.find { |spec| spec.name == 'puppet-lint' } 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 66 def gem_directories if 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 44 def gemspecs @gemspecs ||= if Gem::Specification.respond_to?(:latest_specs) Gem::Specification.latest_specs(load_prerelease_plugins?) else Gem.searcher.init_gemspecs end end
load_prerelease_plugins?()
click to toggle source
Internal: Determine whether to load plugins that contain a letter in their version number.
Returns true if the configuration is set to load “prerelease” gems, false otherwise.
# File lib/puppet-lint/plugins.rb, line 55 def load_prerelease_plugins? # Load prerelease plugins (which ruby defines as any gem which has a letter in its version number). # Can't use puppet-lint configuration object here because this code executes before the command line is parsed. return ['true', 'yes'].include?(ENV['PUPPET_LINT_LOAD_PRERELEASE_PLUGINS'].downcase) if ENV['PUPPET_LINT_LOAD_PRERELEASE_PLUGINS'] false end
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 37 def rubygems? defined?(::Gem) end