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