Module: Rubio::Model::Bookmark

Defined in:
lib/rubio/model/bookmark.rb

Constant Summary collapse

DIR_RUBIO_RADIO =
File.join(Dir.home, '.rubio-radio')
FILE_RUBIO_RADIO_BOOKMARKS =
File.join(DIR_RUBIO_RADIO, 'bookmarks.yml')

Class Method Summary collapse

Class Method Details

.add(stationuuid) ⇒ Object



15
16
17
18
19
20
# File 'lib/rubio/model/bookmark.rb', line 15

def add(stationuuid)
  unless all.include?(stationuuid)
    all << stationuuid
    save_all
  end
end

.allObject



29
30
31
# File 'lib/rubio/model/bookmark.rb', line 29

def all
  @all ||= load_all || []
end

.load_allObject



43
44
45
46
47
48
49
50
# File 'lib/rubio/model/bookmark.rb', line 43

def load_all
  bookmarks_yaml = File.read(FILE_RUBIO_RADIO_BOOKMARKS)
  YAML.load(bookmarks_yaml)
rescue => e
  puts 'Failed in loading bookmarks! Returning empty bookmarks.'
  puts e.full_message
  []
end

.remove(stationuuid) ⇒ Object



22
23
24
25
26
27
# File 'lib/rubio/model/bookmark.rb', line 22

def remove(stationuuid)
  if all.include?(stationuuid)
    all.delete(stationuuid)
    save_all
  end
end

.save_allObject



33
34
35
36
37
38
39
40
41
# File 'lib/rubio/model/bookmark.rb', line 33

def save_all
  bookmarks_yaml = YAML.dump(all)
  File.write(FILE_RUBIO_RADIO_BOOKMARKS, bookmarks_yaml)
rescue => e
  puts 'Failed in saving bookmarks!'
  puts all.inspect
  puts e.full_message
  # No Op
end