class PreCommit::Configuration::Providers

Public Class Methods

new(pluginator, plugins = nil) click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 14
def initialize(pluginator, plugins = nil)
  @pluginator = pluginator
  @plugins    = plugins
end

Public Instance Methods

[](name) click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 19
def [](name)
  plugins.map{|plugin| plugin[name] }.compact.last
end
default(name) click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 23
def default(name)
  plugins[0][name]
end
list() click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 36
def list
  plugins.map{|plugin| "#{class2string(class2name(plugin.class))}(#{plugin.class.priority})" }
end
update(plugin_name, name, operation, list) click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 27
def update(plugin_name, name, operation, list)
  plugin = find_update_plugin(plugin_name)
  name   = name.to_sym
  value = plugin[name] || []
  raise PreCommit::NotAnArray.new unless Array === value
  value = value.send(operation, list)
  plugin.update(name, value)
end

Private Instance Methods

find_update_plugin(plugin_name) click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 45
def find_update_plugin(plugin_name)
  plugins.detect{|plugin| class2string(class2name(plugin.class)) == plugin_name.to_s} || raise(PluginNotFound.new("Plugin not found for #{plugin_name}."))
end
plugins() click to toggle source
# File lib/pre-commit/configuration/providers.rb, line 41
def plugins
  @plugins ||= @pluginator['configuration/providers'].sort_by(&:priority).map(&:new)
end