Class: Ellipses::Client::Repository
- Inherits:
-
Object
- Object
- Ellipses::Client::Repository
- Defined in:
- lib/ellipses/client/repository.rb
Instance Attribute Summary collapse
-
#loader ⇒ Object
readonly
Returns the value of attribute loader.
-
#paths ⇒ Object
readonly
Returns the value of attribute paths.
Instance Method Summary collapse
- #[](path) ⇒ Object
- #dump ⇒ Object
- #each_source ⇒ Object
-
#initialize(loader, paths) ⇒ Repository
constructor
A new instance of Repository.
- #load(loader) ⇒ Object
- #register(path) ⇒ Object
- #registered?(path) ⇒ Boolean
- #save(all: true) ⇒ Object
- #unregister(path) ⇒ Object
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
#loader ⇒ Object (readonly)
Returns the value of attribute loader.
20 21 22 |
# File 'lib/ellipses/client/repository.rb', line 20 def loader @loader end |
#paths ⇒ Object (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 |
#dump ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ellipses/client/repository.rb', line 49 def dump = Meta.new [] each do |path, file| next unless file.registered next unless (source = file.source).series << Meta::Source.new(source: path, series: source.series) end end |
#each_source ⇒ Object
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 { || register_internal(.source, Source.from_file(.source, paths, .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
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 |