Class: Avm::Data::Package

Inherits:
Object
  • Object
show all
Includes:
Callbacks
Defined in:
lib/avm/data/package.rb,
lib/avm/data/package/dump.rb,
lib/avm/data/package/load.rb,
lib/avm/data/package/build_directory.rb

Direct Known Subclasses

Instances::Data::Package

Defined Under Namespace

Modules: BuildDirectory Classes: Dump, Load

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Package

Returns a new instance of Package.



12
13
14
15
16
17
18
19
# File 'lib/avm/data/package.rb', line 12

def initialize(options)
  options = options.to_options_consumer
  units = options.consume(:units)
  options.validate
  units.if_present do |v|
    v.each { |identifier, unit| add_unit(identifier, unit) }
  end
end

Instance Method Details

#add_unit(identifier, unit) ⇒ Avm::Data::Package

Return self.

Returns:



22
23
24
25
26
# File 'lib/avm/data/package.rb', line 22

def add_unit(identifier, unit)
  units[identifier.to_sym] = unit

  self
end

#dump(data_path, options = {}) ⇒ Object



28
29
30
# File 'lib/avm/data/package.rb', line 28

def dump(data_path, options = {})
  ::Avm::Data::Package::Dump.new(self, data_path, options)
end

#dump_units_to_directory(directory) ⇒ Object



36
37
38
39
40
# File 'lib/avm/data/package.rb', line 36

def dump_units_to_directory(directory)
  run_callbacks :dump do
    units.each { |identifier, unit| unit.dump_to_directory(directory, identifier) }
  end
end

#load(data_path) ⇒ Object



32
33
34
# File 'lib/avm/data/package.rb', line 32

def load(data_path)
  ::Avm::Data::Package::Load.new(self, data_path)
end

#load_units_from_directory(directory) ⇒ Object



42
43
44
45
46
# File 'lib/avm/data/package.rb', line 42

def load_units_from_directory(directory)
  run_callbacks :load do
    units.each { |identifier, unit| unit.load_from_directory(directory, identifier) }
  end
end

#unitsObject



48
49
50
# File 'lib/avm/data/package.rb', line 48

def units
  @units ||= {}
end