Class: Ellipses::Client::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/ellipses/client/repository.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loader, paths) ⇒ Repository

Returns a new instance of Repository.



22
23
24
25
26
27
# File 'lib/ellipses/client/repository.rb', line 22

def initialize(loader, paths)
  @loader = loader
  @paths  = paths
  @files  = {}
  @memo   = {}
end

Instance Attribute Details

#loaderObject (readonly)

Returns the value of attribute loader.



20
21
22
# File 'lib/ellipses/client/repository.rb', line 20

def loader
  @loader
end

#pathsObject (readonly)

Returns the value of attribute paths.



20
21
22
# File 'lib/ellipses/client/repository.rb', line 20

def paths
  @paths
end

Instance Method Details

#[](path) ⇒ Object



29
30
31
# File 'lib/ellipses/client/repository.rb', line 29

def [](path)
  @files[memo(path)].source
end

#dumpObject



49
50
51
52
53
54
55
56
57
58
59
60
# 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_sourceObject



33
34
35
# File 'lib/ellipses/client/repository.rb', line 33

def each_source
  each { |_, file| yield(file.source) }
end

#load(loader) ⇒ Object



37
38
39
40
41
# 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, paths, meta.series)) }
  end
end

#register(path) ⇒ Object



62
63
64
65
66
67
68
# 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, paths))
end

#registered?(path) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
79
80
# 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) ⇒ Object



43
44
45
46
47
# 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) ⇒ Object



70
71
72
73
74
# 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