Sha256: b996c02f1adf1fe6021d10fa3fb2636822dc088d81404101e3678c4194c8d80e
Contents?: true
Size: 1.23 KB
Versions: 35
Compression:
Stored size: 1.23 KB
Contents
require "guard/plugin_util" require "guard/group" require "guard/plugin" module Guard # @private api module Internals class Plugins def initialize @plugins = [] end def all(filter = nil) return @plugins if filter.nil? matcher = matcher_for(filter) @plugins.select { |plugin| matcher.call(plugin) } end def remove(plugin) @plugins.delete(plugin) end # TODO: should it allow duplicates? (probably yes because of different # configs or groups) def add(name, options) @plugins << PluginUtil.new(name).initialize_plugin(options) end private def matcher_for(filter) case filter when String, Symbol shortname = filter.to_s.downcase.delete("-") ->(plugin) { plugin.name == shortname } when Regexp ->(plugin) { plugin.name =~ filter } when Hash lambda do |plugin| filter.all? do |k, v| case k when :name plugin.name == v.to_s.downcase.delete("-") when :group plugin.group.name == v.to_sym end end end end end end end end
Version data entries
35 entries across 35 versions & 8 rubygems