オブジェクトを開いて作成するテキスト ファイルがあります。次のようになります。
/home/music/Accident Murderer.mp3|4:37| Nas | Accident Murderer
/home/music/Bitch Bad.mp3 |4:49| Lupe Fiasco| Bitch Bad
/home/music/ITAL.mp3 |4:24| Lupe Fiasco| ITAL(Roses)
/home/music/The Coolest.mp3 |5:13| Lupe Fiasco| The Coolest
次に、次のコードを使用して曲オブジェクトを作成しています。
songs = SongList.new
songFile = File.open('./songs.txt')
songFile.each do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
name.squeeze!(" ")
mins, secs = length.scan(/\d+/)
songs.append Karaoke::Song.new(title, name, mins.to_i*60+secs.to_i)
end
ただし、次のエラー メッセージが表示されます。
songlist.rb:40:in `block in <class:SongList>': undefined method `squeeze!' for nil:NilClass (NoMethodError).
誰か助けてください。なぜ「絞る!」なのかわかりません。未定義のメソッドです。Stringクラスのメソッドですよね?