class PreCommit::PluginsList
Attributes
configured_names[R]
configured_remove[R]
Public Class Methods
new(configured_names, configured_remove, &block)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 10 def initialize(configured_names, configured_remove, &block) @configured_names = configured_names @configured_remove = configured_remove @class_finder = block end
Public Instance Methods
evaluated_names()
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 16 def evaluated_names evaluated_names_(evaluated_names_pairs).flatten.compact end
list_to_run()
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 20 def list_to_run list_to_run_(evaluated_names_pairs).flatten.compact end
Private Instance Methods
class_and_includes(name, klass)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 55 def class_and_includes(name, klass) [ name, klass, klass.respond_to?(:includes) ? find_classes_and_includes(klass.includes) : [] ] end
class_excludes(klass)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 63 def class_excludes(klass) klass.respond_to?(:excludes) ? klass.excludes : [] end
configured_remove_aliases()
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 77 def configured_remove_aliases @configured_remove_aliases ||= configured_remove.map{|remove| list = [remove] klass = find_class(remove) list += klass.aliases if klass.respond_to?(:aliases) list }.flatten.compact end
evaluated_names_(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 26 def evaluated_names_(list) list.map{|name, klass, includes| [name] + evaluated_names_(includes||[]) } end
evaluated_names_pairs()
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 34 def evaluated_names_pairs list = find_classes_and_includes(configured_names) excludes = excludes(list).flatten.compact list = filter_excludes(list, excludes) list = filter_excludes(list, configured_remove_aliases) list = filter_callable(list) list end
excludes(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 59 def excludes(list) list.map{|name, klass, includes| class_excludes(klass) + excludes(includes) } end
filter_callable(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 71 def filter_callable(list) list.map{|name, klass, includes| (klass.instance_methods.include?(:call) ? [name, klass] : [nil, nil]) << filter_callable(includes) }.compact end
filter_excludes(list, excludes)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 67 def filter_excludes(list, excludes) list.map{|name, klass, includes| excludes.include?(name) ? nil : [name, klass, filter_excludes(includes, excludes)] }.compact end
find_class(name)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 47 def find_class(name) @class_finder.call(name) end
find_classes(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 51 def find_classes(list) list.map{|name| [name, find_class(name)] }.reject{|name, klass| klass.nil? } end
find_classes_and_includes(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 43 def find_classes_and_includes(list) find_classes(list).map{ |name, klass| class_and_includes(name, klass) } end
list_to_run_(list)
click to toggle source
# File lib/pre-commit/plugins_list.rb, line 30 def list_to_run_(list) list.map{|name, klass, includes| [klass] + list_to_run_(includes||[]) } end