Sha256: 783ee0cd8c86f83b5fe573fac8ce9c09bebae846b992717a36806f0c4231b190
Contents?: true
Size: 1.68 KB
Versions: 6
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true require 'avm/data/callbacks' require 'eac_ruby_utils/core_ext' module Avm module Data class Package require_sub __FILE__, require_mode: :kernel include ::Avm::Data::Callbacks DATA_FILE_EXTENSION = '.tar' 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 # @return [Avm::Data::Package] Return +self+. def add_unit(identifier, unit) units[identifier.to_sym] = unit self end # @return [String] def data_file_extension DATA_FILE_EXTENSION end def dump(data_path, options = {}) ::Avm::Data::Package::Dump.new(self, data_path, options) end def load(data_path) ::Avm::Data::Package::Load.new(self, data_path) end def dump_units_to_directory(directory) run_callbacks :dump do units.each { |identifier, unit| unit.dump_to_directory(directory, identifier) } end end def load_units_from_directory(directory) run_callbacks :load do units.each { |identifier, unit| unit.load_from_directory(directory, identifier) } end end # @param id [Symbol] # @return [Avm::Data::UnitWithCommands] def unit(identifier) units[identifier.to_sym] || raise("No unit found with identifier \"#{identifier}\"") end def units @units ||= {} end # @return [Enumerable<String>] def units_ids units.keys end end end end
Version data entries
6 entries across 6 versions & 2 rubygems