Class: Eg::Music::MusicLibrary

Inherits:
Object
  • Object
show all
Defined in:
lib/eg/music/music_library.rb

Constant Summary collapse

@@library =
[]
@@looking =
nil

Class Method Summary collapse

Class Method Details

.display_contentsObject



34
35
36
37
38
# File 'lib/eg/music/music_library.rb', line 34

def MusicLibrary.display_contents
  displayed = []
  @@library.each {|music| displayed << music if music.selected?}
  displayed
end

.display_countObject



29
30
31
32
33
# File 'lib/eg/music/music_library.rb', line 29

def MusicLibrary.display_count
  count = 0
  @@library.each {|music| count += music.selected ? 1 : 0}
  count
end

.find_album(album) ⇒ Object



55
56
57
58
# File 'lib/eg/music/music_library.rb', line 55

def MusicLibrary.find_album album
  MusicLibrary.search 1.1
  @@library.each {|music| music.selected = (music.album == album)}
end

.find_allObject



47
48
49
50
# File 'lib/eg/music/music_library.rb', line 47

def MusicLibrary.find_all
  MusicLibrary.search 3.2
  @@library.each {|music| music.selected = true}
end

.find_artist(author) ⇒ Object



51
52
53
54
# File 'lib/eg/music/music_library.rb', line 51

def MusicLibrary.find_artist author
  MusicLibrary.search 2.3
  @@library.each {|music| music.selected = (music.artist == author)}
end

.find_genre(genre) ⇒ Object



59
60
61
62
# File 'lib/eg/music/music_library.rb', line 59

def MusicLibrary.find_genre genre
  search 0.2
  @@library.each {|music| music.selected = (music.genre == genre)}
end

.find_year(year) ⇒ Object



63
64
65
66
# File 'lib/eg/music/music_library.rb', line 63

def MusicLibrary.find_year year
  search 0.8
  @@library.each {|music| music.selected = (music.year == year)}
end

.libraryObject



12
13
14
# File 'lib/eg/music/music_library.rb', line 12

def MusicLibrary.library
  @@library
end

.load(name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/eg/music/music_library.rb', line 19

def MusicLibrary.load name
  music = []
  f = File.new(name)
  f.each_line { |line| music << Music.parse(line) if f.lineno > 1 } # skip column headings
  f.close
  @@library = music
end

.lookingObject



15
16
17
# File 'lib/eg/music/music_library.rb', line 15

def MusicLibrary.looking
  @@looking
end

.search(seconds) ⇒ Object



40
41
42
43
# File 'lib/eg/music/music_library.rb', line 40

def MusicLibrary.search seconds
  Music.status = 'searching'
  Simulator.next_search_complete = Simulator.schedule seconds
end

.search_completeObject



44
45
46
# File 'lib/eg/music/music_library.rb', line 44

def MusicLibrary.search_complete
  Music.status = (MusicPlayer.playing.nil?) ? 'ready': 'playing'
end

.select(music) ⇒ Object



26
27
28
# File 'lib/eg/music/music_library.rb', line 26

def MusicLibrary.select music
  @@looking = music
end