class Rfix::Repository

Constants

INCLUDED
INIT

Public Class Methods

method_added(name) click to toggle source
Calls superclass method
# File lib/rfix/repository.rb, line 26
def self.method_added(name)
  super.tap { memoize(name) }
end

Public Instance Methods

cache() click to toggle source
# File lib/rfix/repository.rb, line 58
def cache
  Concurrent::Map.new do |storage, path|
    storage.fetch(Types::Path::Absolute.call(path).to_s, File::Null)
  end.tap do |storage|
    files.each { |file| storage.compute_if_absent(file.key) { file } }
  end
end
collector() click to toggle source
# File lib/rfix/repository.rb, line 111
def collector
  Collector.call(repository: self, reference: reference.name)
end
contains?(path, line = Undefined)
Alias for: include_file?
deleted() click to toggle source
# File lib/rfix/repository.rb, line 50
def deleted
  files.select(&:deleted?)
end
files() click to toggle source
# File lib/rfix/repository.rb, line 66
def files
  Diff.new(repository: self, current_path: current_path).deltas.map do |delta|
    File::Tracked.call(**delta.new_file, repository: self, status: delta.status)
  end
end
ignored() click to toggle source
# File lib/rfix/repository.rb, line 42
def ignored
  files.select(&:ignored?)
end
include?(path, line) click to toggle source
# File lib/rfix/repository.rb, line 30
def include?(path, line)
  cache[path].include?(line)
end
include_file?(path, line = Undefined) click to toggle source
# File lib/rfix/repository.rb, line 95
def include_file?(path, line = Undefined)
  return cache[path].exists? if line == Undefined

  cache[path].include?(line)
end
Also aliased as: contains?, include?
inspect()
Alias for: to_s
origin() click to toggle source

TODO: Refactor

# File lib/rfix/repository.rb, line 105
def origin
  repository.lookup(repository.rev_parse(reference.name).oid)
rescue Rugged::Error, Rugged::InvalidError, Rugged::ReferenceError
  raise Error, "Reference #{reference.name.inspect} not found"
end
path() click to toggle source
# File lib/rfix/repository.rb, line 54
def path
  Pathname(workdir)
end
paths() click to toggle source
# File lib/rfix/repository.rb, line 91
def paths
  permitted.map(&:key).to_a
end
permitted() click to toggle source
# File lib/rfix/repository.rb, line 72
def permitted
  files
end
skipped() click to toggle source
# File lib/rfix/repository.rb, line 34
def skipped
  ignored + deleted
end
to_s() click to toggle source
# File lib/rfix/repository.rb, line 76
def to_s
  files.each_with_object(INIT.dup) do |file, object|
    object[file.class] << file
  end.map do |type, files|
    "%<type>s[%<count>i]:%<files>s" % {
      files: files.map(&:to_s).join(", "),
      type: type.name.demodulize,
      count: files.count
    }
  end.then do |types|
    "Repository<%<types>s>" % { types: types.join(", ") }
  end
end
Also aliased as: inspect
tracked() click to toggle source
# File lib/rfix/repository.rb, line 38
def tracked
  files.select(&:tracked?)
end
untracked() click to toggle source
# File lib/rfix/repository.rb, line 46
def untracked
  files.select(&:untracked?)
end