class Milkode::GroongaDatabase
Public Class Methods
new()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 17 def initialize @database = nil end
Public Instance Methods
close()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 57 def close @database.close @database = nil end
closed?()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 62 def closed? @database.nil? or @database.closed? end
compatible?(filename, no_exit = nil)
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 74 def compatible?(filename, no_exit = nil) unless Groonga["documents"] && Groonga["packages"] unless no_exit puts <<EOF Milkode repository is old -> #{filename}. Please rebuild repository, milk rebuild --all See 'milk --help' or http://milkode.ongaeshi.me . EOF exit -1 else nil end else true end end
documents()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 66 def documents @documents ||= DocumentTable.new(Groonga["documents"]) end
open(base_dir)
click to toggle source
ディレクトリを指定して開く
# File lib/milkode/database/groonga_database.rb, line 22 def open(base_dir) open_file Dbdir.groonga_path(base_dir) end
open_file(filename) { |self| ... }
click to toggle source
データベースファイルを指定して開く
# File lib/milkode/database/groonga_database.rb, line 27 def open_file(filename) if File.exist?(filename) @database = Groonga::Database.open(filename) compatible?(filename) define_schema else FileUtils.mkdir_p(File.dirname filename) @database = Groonga::Database.create(:path => filename) define_schema end @packages = nil @documents = nil if block_given? begin yield self ensure close unless closed? end end end
packages()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 70 def packages @packages ||= PackageTable.new(Groonga["packages"]) end
yaml_sync(yaml_contents)
click to toggle source
あらかじめ GroongaDatabase#open
しておく必要がある
# File lib/milkode/database/groonga_database.rb, line 51 def yaml_sync(yaml_contents) yaml_contents.each do |yp| packages.add(yp.name, yp.directory, yp.options) if packages[yp.name].nil? end end
Private Instance Methods
define_schema()
click to toggle source
# File lib/milkode/database/groonga_database.rb, line 96 def define_schema DocumentTable.define_schema PackageTable.define_schema end