Sha256: 5568e9501e9c0f9d2686859b0917117b291dfe96283c87bfcc5e48851364b05d
Contents?: true
Size: 1.11 KB
Versions: 9
Compression:
Stored size: 1.11 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' require 'ehbrs_ruby_utils/fs/iso_9660_file' module EhbrsRubyUtils module Vg module Ps2 class IsoFile < ::EhbrsRubyUtils::Fs::Iso9660File CODE_PATTERN = /[a-zA-Z]{4}_[0-9]{3}\.[0-9]{2}/.freeze CODE_PARSER = CODE_PATTERN.to_parser(&:to_s) # @return [String] def code list.lazy.map { |line| CODE_PARSER.parse(line) }.find(&:present?) end # @return [String] def basename_nocode_noext path.basename_noext.to_path.gsub(/\A#{::Regexp.quote(code)}/, '') end # @return [Path] def target_path path.basename_sub do |_b| "#{code}.#{path_basename}#{DEFAULT_EXTNAME}" end end # @return [Boolean] def valid? super && code.present? end private # @return [String] def path_basename path.basename_noext.to_path.gsub(/\A#{::Regexp.quote(code)}/, '') .gsub(/[^0-9a-zA-Z]+/, '_').gsub(/\A_+/, '').gsub(/_+\z/, '') end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems