Sha256: 7706d4e25a36c8c41a33e7c374900530b69dcfabf24fc5bb79ba8a573348d864

Contents?: true

Size: 1.65 KB

Versions: 2

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

require 'avm/eac_ruby_base1/sources/base'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacRubyBase0
    module Sources
      class Base < ::Avm::EacRubyBase1::Sources::Base
        module Executable
          EXECUTABLE_NAME_KEY = 'executable.name'
          EXECUTABLE_DIRECTORY_KEY = 'executable.directory'
          DEFAULT_EXECUTABLE_DIRECTORY = 'exe'

          # @return [String]
          def default_executable_name
            application.id
          end

          # @return [String]
          def default_executable_directory
            DEFAULT_EXECUTABLE_DIRECTORY
          end

          # @return [String]
          def executable_directory
            executable_directory_by_configuration || default_executable_directory
          end

          # @return [String, nil]
          def executable_directory_by_configuration
            configuration.entry(EXECUTABLE_DIRECTORY_KEY).value
          end

          # @return [String]
          def executable_name
            executable_name_by_configuration || default_executable_name
          end

          # @return [String, nil]
          def executable_name_by_configuration
            configuration.entry(EXECUTABLE_NAME_KEY).value
          end

          # Executable's absolute path.
          #
          # @return [Pathname]
          def executable_path
            path.join(executable_subpath)
          end

          # Executable's relative path from source's root.
          #
          # @return [Pathname]
          def executable_subpath
            executable_directory.to_pathname.join(executable_name)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
avm-eac_ruby_base0-0.1.0 lib/avm/eac_ruby_base0/sources/base/executable.rb
eac_tools-0.91.0 sub/avm-eac_ruby_base0/lib/avm/eac_ruby_base0/sources/base/executable.rb