class SCSSLint::Plugins::LinterGem

Load linter plugin gems

Attributes

config[R]

Public Class Methods

new(name) click to toggle source
# File lib/scss_lint/plugins/linter_gem.rb, line 7
def initialize(name)
  @name = name
end

Public Instance Methods

load() click to toggle source
# File lib/scss_lint/plugins/linter_gem.rb, line 11
def load
  require @name
  @config = plugin_config
  self
rescue Gem::LoadError, LoadError
  raise SCSSLint::Exceptions::PluginGemLoadError,
        "Unable to load linter plugin gem '#{@name}'. Try running "                "`gem install #{@name}`, or adding it to your Gemfile and "                'running `bundle install`. See the `plugin_gems` section of '                'your .scss-lint.yml file to add/remove gem plugins.'
end

Private Instance Methods

plugin_config() click to toggle source

Returns the {SCSSLint::Config} for this plugin.

This is intended to be merged with the configuration that loaded this plugin.

@return [SCSSLint::Config]

# File lib/scss_lint/plugins/linter_gem.rb, line 31
def plugin_config
  file = plugin_config_file

  if File.exist?(file)
    Config.load(file, merge_with_default: false)
  else
    Config.new({})
  end
end
plugin_config_file() click to toggle source

Path of the configuration file to attempt to load for this plugin.

@return [String]

# File lib/scss_lint/plugins/linter_gem.rb, line 44
def plugin_config_file
  gem_specification = Gem::Specification.find_by_name(@name)

  File.join(gem_specification.gem_dir, Config::FILE_NAME)
end