Sha256: c9009eeb5f12e33708dec03292cbe632e6c61555f22f27e89f638ebdf8275c28
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
module Owners # Accepts an array of file paths and returns an array of # owners that have subscribed to the specified files. # # @api private class Search def initialize(files, configs = nil) @files = files @configs = configs end def owners search do |(path, config), results| owners = config.owners(path.to_s) results.merge(owners) if owners end end private def search(&block) attempts.each_with_object(SortedSet.new, &block).to_a end def attempts paths.product(configs) end def configs if @configs @configs.map { |file, contents| Config.new(file, contents) } else subscriptions.map { |file| Config.new(file) } end end def subscriptions trees.flat_map(&:owner_files).uniq end def trees paths.map { |path| Tree.new(path) } end def paths @files.map do |file| file.prepend("./") unless file =~ /^\.?\// Pathname.new(file) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
owners-0.0.6 | lib/owners/search.rb |
owners-0.0.5 | lib/owners/search.rb |
owners-0.0.4 | lib/owners/search.rb |