lib/velibe/db/kv_store.rb in velibe-0.2.2 vs lib/velibe/db/kv_store.rb in velibe-0.2.3
- old
+ new
@@ -1,35 +1,45 @@
# -*- coding: utf-8 -*-
require 'moneta'
require 'pathname'
+require 'velibe/config'
module Velibe
module KvStore
- NAME = '~/.velib.yaml' # TODO: more generic
- PATH = Pathname.new(NAME).expand_path
- DB = Moneta.new(:YAML, file: PATH)
+ include Config
+ KV_DB = Moneta.new(:YAML, file: KV_PATH)
FAV_KEY = 'favorites'
+ def self.db
+ KV_DB
+ end
+
+ def self.fav_key
+ FAV_KEY
+ end
+
def self.token
- DB['token']
+ KV_DB['token']
end
- def self.reset_favorite_stations
- DB[FAV_KEY] = []
+ def self.reset_favorite_stations(*new_stations)
+ KV_DB[FAV_KEY] = new_stations.collect(&:to_i)
end
def self.favorite_stations
- DB[FAV_KEY]
+ KV_DB[FAV_KEY]
end
def self.add_favorite_station(*stations)
- fav = DB[FAV_KEY]
+ fav = KV_DB[FAV_KEY]
# TODO: handle setup
# TODO: check existing station
- stations.each { |station| fav.push(station) unless fav.include?(station) }
- DB[FAV_KEY] = fav
+ stations.collect(&:to_i).each do |station|
+ fav.push(station) unless fav.include?(station)
+ end
+ KV_DB[FAV_KEY] = fav
end
end
end