class Yamazaki::Database

Public Class Methods

new(track_file, save_on_push = true) click to toggle source
# File lib/yamazaki/database.rb, line 17
def initialize(track_file, save_on_push = true)
        @track_file   = track_file
        @save_on_push = save_on_push

        @db   = Oj.load(File.read(track_file)) if File.exists?(track_file)
        @db ||= []
        @db.sort_by! { |t| t[:filename] }
end

Public Instance Methods

<<(filename) click to toggle source
# File lib/yamazaki/database.rb, line 26
def <<(filename)
        unless self.include? filename
                @db << { filename: filename, added_at: Time.now }
                @db.sort_by! { |t| t[:filename] }
                save if @save_on_push
        end
end
empty?() click to toggle source
# File lib/yamazaki/database.rb, line 46
def empty?
        @db.size == 0
end
include?(filename) click to toggle source
# File lib/yamazaki/database.rb, line 34
def include?(filename)
        begin
                @db.bsearch { |t| t[:filename] >= filename }[:filename] == filename
        rescue
                false 
        end 
end
size() click to toggle source
# File lib/yamazaki/database.rb, line 42
def size
        @db.size
end

Private Instance Methods

save() click to toggle source
# File lib/yamazaki/database.rb, line 52
def save
        File.open(@track_file, ?w) do |f|
                f.write(Oj.dump(@db))
        end
end