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

Direct Known Subclasses

Instances::Data::Package

Defined Under Namespace

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) ⇒ Object



21
22
23
# File 'lib/avm/data/package.rb', line 21

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

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



25
26
27
# File 'lib/avm/data/package.rb', line 25

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

#dump_units_to_directory(directory) ⇒ Object



33
34
35
36
37
# File 'lib/avm/data/package.rb', line 33

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



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

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

#load_units_from_directory(directory) ⇒ Object



39
40
41
42
43
# File 'lib/avm/data/package.rb', line 39

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

#unitsObject



45
46
47
# File 'lib/avm/data/package.rb', line 45

def units
  @units ||= {}
end