Sha256: 50cf234eb59b830f529b47525ca2c4979eff16b2b342f4ebbe2454c951dff9d5
Contents?: true
Size: 1.07 KB
Versions: 2
Compression:
Stored size: 1.07 KB
Contents
module Owners # Represents a single line of an OWNERS file. # # It contains some useful methods for inspecting the # subscriptions themselves like the file, line, and # filter, and subscribers. # # @api public class Subscription COMMENT = /^\s*\/\// WILDCARD = /.*/ attr_reader :file, :line, :root, :subscription def initialize(subscription, line, config) @subscribers, @filter = subscription.split(/\s+/, 2) @subscription = subscription @line = line @file = config.file.sub("./", "") @root = config.root end def filter Regexp.new(@filter || WILDCARD) end def metadata? comment? || empty? end def subscribed?(path) path =~ prefix && relative(path) =~ filter end def subscribers @subscribers.split(",").reject(&:empty?) end private def comment? subscription =~ COMMENT end def empty? subscription.strip.empty? end def prefix /\.?\/?#{root}\// end def relative(path) path.sub(prefix, "") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
owners-0.1.0 | lib/owners/subscription.rb |
owners-0.0.9 | lib/owners/subscription.rb |