Class: AudioAddict::Log

Inherits:
Object
  • Object
show all
Defined in:
lib/audio_addict/log.rb

Instance Method Summary collapse

Instance Method Details

#dataObject



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

#pathObject



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

#sortObject



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

#treeObject



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