Class: EhbrsRubyUtils::Vg::Wii::GameFile

Inherits:
Pathname
  • Object
show all
Defined in:
lib/ehbrs_ruby_utils/vg/wii/game_file.rb

Constant Summary collapse

DISC_NUMBER_PATTERN =
/disc.?(\d)/i.freeze
FORMAT =
::EacRubyUtils::CustomFormat.new(
  b: :basename,
  d: :dirname,
  D: :disc_number,
  e: :extname,
  i: :id6,
  m: :normalized_disc_name,
  n: :disc_name,
  N: :nintendont_basename,
  s: :sanitized_disc_name,
  t: :database_title,
  T: :disc_type
)

Instance Method Summary collapse

Instance Method Details

#database_titleObject



27
28
29
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 27

def database_title
  properties.fetch('DB title')
end

#disc_nameObject



31
32
33
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 31

def disc_name
  properties.fetch('Disc name')
end

#disc_numberObject



35
36
37
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 35

def disc_number
  DISC_NUMBER_PATTERN.if_match(basename.to_s, false) { |m| m[1].to_i }.if_present(1)
end

#disc_typeObject



39
40
41
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 39

def disc_type
  properties.fetch('File & disc type/type')
end

#format(string) ⇒ Object



43
44
45
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 43

def format(string)
  FORMAT.format(string).with(self)
end

#id6Object



56
57
58
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 56

def id6
  properties.fetch('Disc & part IDs/disc')
end

#nintendont_basenameObject



51
52
53
54
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 51

def nintendont_basename
  n = disc_number
  n == 1 ? 'game' : "disc#{n}"
end

#normalized_disc_nameObject



47
48
49
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 47

def normalized_disc_name
  sanitized_disc_name.downcase
end

#sanitized_disc_nameObject



60
61
62
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 60

def sanitized_disc_name
  ::ActiveSupport::Inflector.transliterate(disc_name).gsub(/[^0-9a-z ]/i, '')
end

#valid?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 64

def valid?
  properties.present?
end

#wit_pathObject



68
69
70
# File 'lib/ehbrs_ruby_utils/vg/wii/game_file.rb', line 68

def wit_path
  ::EhbrsRubyUtils::Vg::Wii::Wit::Path.new(disc_type, self)
end