Class: Milkode::GroongaDatabase
- Inherits:
-
Object
- Object
- Milkode::GroongaDatabase
- Defined in:
- lib/milkode/database/groonga_database.rb
Instance Method Summary collapse
- #close ⇒ Object
- #closed? ⇒ Boolean
- #compatible?(filename, no_exit = nil) ⇒ Boolean
- #documents ⇒ Object
-
#initialize ⇒ GroongaDatabase
constructor
A new instance of GroongaDatabase.
-
#open(base_dir) ⇒ Object
ディレクトリを指定して開く.
-
#open_file(filename) ⇒ Object
データベースファイルを指定して開く.
- #packages ⇒ Object
-
#yaml_sync(yaml_contents) ⇒ Object
あらかじめ GroongaDatabase#open しておく必要がある.
Constructor Details
#initialize ⇒ GroongaDatabase
Returns a new instance of GroongaDatabase.
18 19 20 |
# File 'lib/milkode/database/groonga_database.rb', line 18 def initialize @database = nil end |
Instance Method Details
#close ⇒ Object
58 59 60 61 |
# File 'lib/milkode/database/groonga_database.rb', line 58 def close @database.close @database = nil end |
#closed? ⇒ Boolean
63 64 65 |
# File 'lib/milkode/database/groonga_database.rb', line 63 def closed? @database.nil? or @database.closed? end |
#compatible?(filename, no_exit = nil) ⇒ Boolean
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/milkode/database/groonga_database.rb', line 75 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 ⇒ Object
67 68 69 |
# File 'lib/milkode/database/groonga_database.rb', line 67 def documents @documents ||= DocumentTable.new(Groonga["documents"]) end |
#open(base_dir) ⇒ Object
ディレクトリを指定して開く
23 24 25 |
# File 'lib/milkode/database/groonga_database.rb', line 23 def open(base_dir) open_file Dbdir.groonga_path(base_dir) end |
#open_file(filename) ⇒ Object
データベースファイルを指定して開く
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/milkode/database/groonga_database.rb', line 28 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 ⇒ Object
71 72 73 |
# File 'lib/milkode/database/groonga_database.rb', line 71 def packages @packages ||= PackageTable.new(Groonga["packages"]) end |