class Ellipses::Client::Repository
Constants
- File
Attributes
config[R]
loader[R]
Public Class Methods
new(loader, config)
click to toggle source
# File lib/ellipses/client/repository.rb, line 22 def initialize(loader, config) @loader = loader @config = config @files = {} @memo = {} end
Public Instance Methods
[](path)
click to toggle source
# File lib/ellipses/client/repository.rb, line 29 def [](path) @files[memo(path)].source end
dump()
click to toggle source
# File lib/ellipses/client/repository.rb, line 49 def dump meta = Meta.new [] each do |path, file| next unless file.registered next unless (source = file.source).series meta << Meta::Source.new(source: path, series: source.series) end meta end
each_source() { |source| ... }
click to toggle source
# File lib/ellipses/client/repository.rb, line 33 def each_source each { |_, file| yield(file.source) } end
load(loader)
click to toggle source
# File lib/ellipses/client/repository.rb, line 37 def load(loader) Dir.chdir loader.directory do loader.read.each { |meta| register_internal(meta.source, Source.from_file(meta.source, config, meta.series)) } end end
register(path)
click to toggle source
# File lib/ellipses/client/repository.rb, line 62 def register(path) if @files.key?(key = memo(path)) return @files[key].tap { |file| file.registered = true }.source end register_internal(key, Source.from_file(path, config)) end
registered?(path)
click to toggle source
# File lib/ellipses/client/repository.rb, line 76 def registered?(path) return false unless @files.key?(key = memo(path)) @files[key].registered end
save(all: true)
click to toggle source
# File lib/ellipses/client/repository.rb, line 43 def save(all: true) n = 0 each { |_, file| file.save(all: all) and (n += 1) } n.positive? end
unregister(path)
click to toggle source
# File lib/ellipses/client/repository.rb, line 70 def unregister(path) return unless @files.key?(key = memo(path)) @files[key].tap { |file| file.registered = false }.source end
Private Instance Methods
each(&block)
click to toggle source
# File lib/ellipses/client/repository.rb, line 88 def each(&block) Dir.chdir(loader.directory) { @files.each(&block) } end
memo(path)
click to toggle source
# File lib/ellipses/client/repository.rb, line 84 def memo(path) @memo[path] ||= Support.deflate_path(path, loader.directory) end
register_internal(key, source)
click to toggle source
# File lib/ellipses/client/repository.rb, line 92 def register_internal(key, source) @files[key] = File.new path: key, source: source, digest: Support.digest(*source.lines), registered: true source end