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