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/clear.rb,
lib/avm/data/package/base_performer.rb,
lib/avm/data/package/build_directory.rb

Direct Known Subclasses

Instances::Data::Package

Defined Under Namespace

Modules: BuildDirectory Classes: BasePerformer, Clear, Dump, Load

Constant Summary collapse

DATA_FILE_EXTENSION =
'.tar'

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Package

Returns a new instance of Package.



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

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:



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

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

  self
end

#data_file_extensionString

Returns:

  • (String)


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

def data_file_extension
  DATA_FILE_EXTENSION
end

#dump_units_to_directory(directory, selected_units = nil) ⇒ Object



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

def dump_units_to_directory(directory, selected_units = nil)
  run_callbacks :dump do
    (selected_units || units).each do |identifier, unit|
      unit.dump_to_directory(directory, identifier)
    end
  end
end

#load_units_from_directory(directory, selected_units = nil) ⇒ Object



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

def load_units_from_directory(directory, selected_units = nil)
  run_callbacks :load do
    (selected_units || units).each do |identifier, unit|
      unit.load_from_directory(directory, identifier)
    end
  end
end

#unit(identifier) ⇒ Avm::Data::UnitWithCommands

Parameters:

  • id (Symbol)

Returns:



52
53
54
# File 'lib/avm/data/package.rb', line 52

def unit(identifier)
  units[identifier.to_sym] || raise("No unit found with identifier \"#{identifier}\"")
end

#unitsObject



56
57
58
# File 'lib/avm/data/package.rb', line 56

def units
  @units ||= {}
end

#units_idsEnumerable<String>

Returns:

  • (Enumerable<String>)


61
62
63
# File 'lib/avm/data/package.rb', line 61

def units_ids
  units.keys
end