class Milkode::PackageTable
Public Class Methods
define_schema()
click to toggle source
# File lib/milkode/database/package_table.rb, line 13 def self.define_schema Groonga::Schema.define do |schema| schema.create_table("packages", :type => :hash) do |table| table.string("name") table.string("directory") table.time("addtime") table.time("updatetime") table.time("viewtime") table.time("favtime") end end end
new(table)
click to toggle source
# File lib/milkode/database/package_table.rb, line 26 def initialize(table) @table = table end
Public Instance Methods
[](name)
click to toggle source
# File lib/milkode/database/package_table.rb, line 55 def [](name) @table[name] end
add(name, directory, options)
click to toggle source
# File lib/milkode/database/package_table.rb, line 34 def add(name, directory, options) now = Time.now @table.add(name, :name => name, :directory => directory, :addtime => now, :updatetime => options[:same_add] ? now : Time.at(0), :viewtime => options[:same_add] ? now : Time.at(0), :favtime => options[:fav] ? now : Time.at(0)) end
dump()
click to toggle source
# File lib/milkode/database/package_table.rb, line 69 def dump self.each do |r| p [r.name, r.addtime, r.updatetime, r.viewtime, r.favtime] end end
each() { |r| ... }
click to toggle source
# File lib/milkode/database/package_table.rb, line 59 def each @table.select.each do |r| yield r end end
fav?(name)
click to toggle source
# File lib/milkode/database/package_table.rb, line 100 def fav?(name) @table[name].favtime != Time.at(0) end
favs()
click to toggle source
# File lib/milkode/database/package_table.rb, line 89 def favs sorted = sort('favtime') zero_time = Time.at(0) index = sorted.find_index {|v| v.favtime == zero_time} unless index.nil? sorted[0...index] else sorted end end
remove(name)
click to toggle source
# File lib/milkode/database/package_table.rb, line 45 def remove(name) @table[name].delete end
remove_all()
click to toggle source
# File lib/milkode/database/package_table.rb, line 49 def remove_all self.each do |r| remove(r.name) end end
size()
click to toggle source
# File lib/milkode/database/package_table.rb, line 30 def size @table.size end
sort(kind, order = "descending")
click to toggle source
# File lib/milkode/database/package_table.rb, line 65 def sort(kind, order = "descending") Util.groonga_table_sort(@table, [{:key => kind, :order => order}]) end
touch(name, kind, time = Time.now)
click to toggle source
# File lib/milkode/database/package_table.rb, line 75 def touch(name, kind, time = Time.now) @table[name][kind] = time end
touch_if(name, kind, time = Time.now)
click to toggle source
# File lib/milkode/database/package_table.rb, line 79 def touch_if(name, kind, time = Time.now) record = @table[name] if record record[kind] = time else nil end end