Class: Ehbrs::Vg::Wii::GameFile

Inherits:
Pathname
  • Object
show all
Defined in:
lib/ehbrs/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,
  n: :disc_name,
  N: :nintendont_basename,
  t: :database_title,
  T: :disc_type
)

Instance Method Summary collapse

Instance Method Details

#database_titleObject



29
30
31
# File 'lib/ehbrs/vg/wii/game_file.rb', line 29

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

#disc_nameObject



33
34
35
# File 'lib/ehbrs/vg/wii/game_file.rb', line 33

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

#disc_numberObject



37
38
39
# File 'lib/ehbrs/vg/wii/game_file.rb', line 37

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

#disc_typeObject



41
42
43
# File 'lib/ehbrs/vg/wii/game_file.rb', line 41

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

#format(string) ⇒ Object



45
46
47
# File 'lib/ehbrs/vg/wii/game_file.rb', line 45

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

#id6Object



54
55
56
# File 'lib/ehbrs/vg/wii/game_file.rb', line 54

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

#nintendont_basenameObject



49
50
51
52
# File 'lib/ehbrs/vg/wii/game_file.rb', line 49

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

#valid?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/ehbrs/vg/wii/game_file.rb', line 58

def valid?
  properties.present?
end

#wit_pathObject



62
63
64
# File 'lib/ehbrs/vg/wii/game_file.rb', line 62

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