Class: Linknew::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/linknew/database.rb

Overview

Encapsules the linknew database

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Database

Returns a new instance of Database.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/linknew/database.rb', line 6

def initialize(&block)
  @db = SQLite3::Database.new '.linknew.db'
  creates_tables_if_not_exist

  return unless block_given?

  begin
    block.call(self)
  ensure
    close
  end
end

Instance Method Details

#closeObject



19
20
21
# File 'lib/linknew/database.rb', line 19

def close
  @db.close
end

#enter(file) ⇒ Object



31
32
33
34
35
# File 'lib/linknew/database.rb', line 31

def enter(file)
  hash = Database.filehash(file)
  p "Entering file #{file} with hash #{hash}"
  @db.execute(ENTER_FILE_STMT, hash)
end

#known?(file) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
# File 'lib/linknew/database.rb', line 23

def known?(file)
  hash = Database.filehash(file)
  p "Querying file #{file} with hash #{hash}"
  ret = @db.execute(HAS_FILE_STMT, hash)[0][0] == 1
  p "Returning #{ret}"
  ret
end