Class: AudioAddict::Log
- Inherits:
-
Object
- Object
- AudioAddict::Log
- Defined in:
- lib/audio_addict/log.rb
Instance Method Summary collapse
- #data ⇒ Object
- #data! ⇒ Object
- #path ⇒ Object
- #search(query) ⇒ Object
- #sort ⇒ Object
- #tree ⇒ Object
- #tree! ⇒ Object
Instance Method Details
#data ⇒ Object
7 8 9 |
# File 'lib/audio_addict/log.rb', line 7 def data @data ||= data! end |
#data! ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/audio_addict/log.rb', line 11 def data! if File.exist? path File.readlines(path).map(&:strip) else [] end end |
#path ⇒ Object
3 4 5 |
# File 'lib/audio_addict/log.rb', line 3 def path @path ||= Config.like_log end |
#search(query) ⇒ Object
19 20 21 |
# File 'lib/audio_addict/log.rb', line 19 def search(query) data.select { |l| l.downcase.include? query.downcase } end |
#sort ⇒ Object
23 24 25 26 |
# File 'lib/audio_addict/log.rb', line 23 def sort output = "#{data.sort.join("\n")}\n" File.write path, output end |
#tree ⇒ Object
28 29 30 |
# File 'lib/audio_addict/log.rb', line 28 def tree @tree ||= tree! end |
#tree! ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/audio_addict/log.rb', line 32 def tree! result = {} data.each do |line| network, channel, artist, song = line.split(' :: ') result[network] ||= {} result[network][channel] ||= {} result[network][channel][artist] ||= [] result[network][channel][artist] << song end result end |