class Multisync::Selector
Attributes
catalog[R]
Given catalog
result[R]
Selected tasks
sets[R]
Given set names
Public Class Methods
new(catalog, sets)
click to toggle source
# File lib/multisync/selector.rb, line 13 def initialize catalog, sets @catalog = catalog @sets = sets @result = [] end
Public Instance Methods
selected?(subject)
click to toggle source
# File lib/multisync/selector.rb, line 28 def selected? subject # only return the leaves of the definition tree return false unless subject.members.empty? # no sets defined, but subject is in the default set return true if sets.empty? && subject.default? # subject matches any of the given sets sets.any? {|set| /\b#{set}\b/.match subject.fullname } end
tasks()
click to toggle source
# File lib/multisync/selector.rb, line 19 def tasks catalog.traverse self result end
visit(subject, _level)
click to toggle source
# File lib/multisync/selector.rb, line 24 def visit subject, _level result << subject if selected?(subject) end