Sha256: 609541cdb3de6cd70aa125734a3d3c9200b5d1b81363b9e8018d743c4579c0c8

Contents?: true

Size: 1.05 KB

Versions: 263

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Avm
  module Launcher
    module Paths
      class Real < String
        def initialize(path)
          raise "Argument path is not a string: \"#{path}\"|#{path.class}" unless path.is_a?(String)

          super(path)
        end

        def subpath(relative_path)
          ::Avm::Launcher::Paths::Real.new(::File.expand_path(relative_path, self))
        end

        def basename
          ::File.basename(self)
        end

        def dirname
          return nil if self == '/'

          self.class.new(::File.dirname(self))
        end

        def find_file_with_extension(extension)
          r = find_files_with_extension(extension)
          return r.first if r.any?

          raise "Extension \"#{extension}\" not found in directory \"#{self}\""
        end

        def find_files_with_extension(extension)
          r = []
          ::Dir.entries(self).each do |i|
            r << ::File.expand_path(i, self) if i =~ /#{::Regexp.quote(extension)}\z/
          end
          r
        end
      end
    end
  end
end

Version data entries

263 entries across 263 versions & 3 rubygems

Version Path
avm-0.67.0 lib/avm/launcher/paths/real.rb
eac_tools-0.60.1 sub/avm/lib/avm/launcher/paths/real.rb
eac_tools-0.60.0 sub/avm/lib/avm/launcher/paths/real.rb
eac_tools-0.59.0 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.66.1 lib/avm/launcher/paths/real.rb
eac_tools-0.58.0 sub/avm/lib/avm/launcher/paths/real.rb
eac_tools-0.57.0 sub/avm/lib/avm/launcher/paths/real.rb
eac_tools-0.56.1 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.66.0 lib/avm/launcher/paths/real.rb
eac_tools-0.56.0 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.65.0 lib/avm/launcher/paths/real.rb
eac_tools-0.55.7 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.64.2 lib/avm/launcher/paths/real.rb
eac_tools-0.55.6 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.64.1 lib/avm/launcher/paths/real.rb
eac_tools-0.55.5 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.64.0 lib/avm/launcher/paths/real.rb
eac_tools-0.55.4 sub/avm/lib/avm/launcher/paths/real.rb
avm-0.63.0 lib/avm/launcher/paths/real.rb
eac_tools-0.55.3 sub/avm/lib/avm/launcher/paths/real.rb