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