Sha256: 7f718e4be321db740c9079431c898b87ee7702a80f3dc4a6e6c761bf7f83986d

Contents?: true

Size: 1.04 KB

Versions: 6

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'avm/data/unit_with_commands'
require 'avm/instances/data/loading_denied_error'
require 'eac_ruby_utils/core_ext'

module Avm
  module Instances
    module Data
      class Unit < ::Avm::Data::UnitWithCommands
        common_constructor :instance

        # @return [void]
        # @raise Avm::Instances::Data::Unit
        def check_load_permission!
          return if instance.data_allow_loading

          raise ::Avm::Instances::Data::LoadingDeniedError, "Instance: #{instance}"
        end

        # @return [Pathname]
        def data_default_dump_path
          instance.data_default_dump_path.to_pathname.basename_sub('.*') do |b|
            "#{b}_#{identifier}#{dump_path_extension}"
          end
        end

        # @return [String]
        def identifier
          instance.data_package.units.key(self) || raise("No identifier found for #{self}")
        end

        def load(...)
          check_load_permission!
          instance.on_disabled_processes { super }
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/instances/data/unit.rb
eac_tools-0.98.0 sub/avm/lib/avm/instances/data/unit.rb
avm-0.94.0 lib/avm/instances/data/unit.rb
eac_tools-0.94.0 sub/avm/lib/avm/instances/data/unit.rb
avm-0.93.0 lib/avm/instances/data/unit.rb
eac_tools-0.92.0 sub/avm/lib/avm/instances/data/unit.rb