Sha256: f0459f5bf7bb7190dc8f418c3cb850a6bbe8d698f646624d1581acb0dbec50d3

Contents?: true

Size: 1.13 KB

Versions: 76

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

require 'avm/data/callbacks'
require 'avm/data/unit'
require 'eac_ruby_utils/core_ext'

module Avm
  module Data
    class UnitWithCommands < ::Avm::Data::Unit
      acts_as_abstract

      abstract_method :dump_command
      abstract_method :load_command

      # @return [String]
      def dump_path_extension
        singleton_class.const_get('EXTENSION')
      rescue NameError
        ''
      end

      def load_from_directory(directory, identifier)
        load(unit_on_directory_path(directory, identifier))
      end

      def dump_to_directory(directory, identifier)
        dump(unit_on_directory_path(directory, identifier))
      end

      # @return [Struct(:key, :subpath), nil]
      def installation_files_data
        nil
      end

      protected

      def do_dump(data_path)
        dump_command.execute!(output_file: data_path)
      end

      def do_load(data_path)
        load_command.execute!(input_file: data_path)
      end

      private

      def unit_on_directory_path(directory, identifier)
        ::File.join(directory, "#{identifier}#{dump_path_extension}")
      end
    end
  end
end

Version data entries

76 entries across 76 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/data/unit_with_commands.rb
eac_tools-0.98.0 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.94.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.94.0 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.93.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.92.0 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.92.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.91.0 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.90.1 lib/avm/data/unit_with_commands.rb
eac_tools-0.87.1 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.90.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.87.0 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.89.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.86.12 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.88.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.86.11 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.87.0 lib/avm/data/unit_with_commands.rb
eac_tools-0.86.8 sub/avm/lib/avm/data/unit_with_commands.rb
avm-0.86.2 lib/avm/data/unit_with_commands.rb
eac_tools-0.86.7 sub/avm/lib/avm/data/unit_with_commands.rb