class Courtier::ConfigFilter
Public Class Methods
new(configuration, criteria={})
click to toggle source
Initialize new ConfigFilter
.
@param [Array<Config>] List if Config
instances.
# File lib/courtier/config_filter.rb, line 12 def initialize(configuration, criteria={}) @configuration = configuration @criteria = criteria @list = [] configuration.each do |c| @list << c if c.match?(criteria) end end
Public Instance Methods
[](subset)
click to toggle source
# File lib/courtier/config_filter.rb, line 47 def [](subset) return method_missing(:[]) if profile if tool criteria = @criteria.dup criteria[:profile] = subset else criteria = @criteria.dup criteria[:tool] = subset end self.class.new(@configuration, criteria) end
call(*args)
click to toggle source
Call each config.
# File lib/courtier/config_filter.rb, line 78 def call(*args) @list.each do |c| if c.profile?(RC.current_profile) c.call(*args) end end end
each(&block)
click to toggle source
# File lib/courtier/config_filter.rb, line 62 def each(&block) @list.each do block end end
profile()
click to toggle source
# File lib/courtier/config_filter.rb, line 33 def profile @criteria[:profile] end
profiles()
click to toggle source
Returns list of profiles.
# File lib/courtier/config_filter.rb, line 40 def profiles @list.map{ |c| c.profile } end
size()
click to toggle source
# File lib/courtier/config_filter.rb, line 71 def size @list.size end
to_proc(exec=false)
click to toggle source
Convert to Proc.
# File lib/courtier/config_filter.rb, line 89 def to_proc(exec=false) list = @list if exec Proc.new do |*args| list.each{ |c| instance_exec(*args, &c) } end else Proc.new do |*args| list.each{ |c| c.call(*args) } end end end
tool()
click to toggle source
# File lib/courtier/config_filter.rb, line 26 def tool @criteria[:tool] end