Module: BEL::Resource::Search::Plugins::Sqlite

Extended by:
ClassMethods
Defined in:
lib/bel/resource/search/plugins/sqlite/sqlite3.rb,
lib/bel/resource/search/plugins/sqlite.rb

Defined Under Namespace

Classes: Sqlite3FTS

Constant Summary collapse

NAME =
'Resource search on sqlite FTS'
DESCRIPTION =
'A resource search implementation using sqlite FTS capabilities.'

Class Method Summary collapse

Class Method Details

.create_search(options = {}) ⇒ Object

See Also:

  • ClassMethods#create_search


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/bel/resource/search/plugins/sqlite.rb', line 13

def self.create_search(options = {})
  database_file = options[:database_file]
  unless database_file
    raise ArgumentError.new(':database_file option must be provided')
  end

  # database abstraction
  require 'sequel'
  # Resource search implementation
  require_relative 'sqlite/sqlite3'

  case RUBY_ENGINE
  when "jruby"
    require 'jdbc/sqlite3'
    Sqlite3FTS.new(Sequel.connect("jdbc:sqlite:#{database_file}"))
  when "ruby", "rbx"
    require 'sqlite3'
    Sqlite3FTS.new(Sequel.connect("sqlite://#{database_file}"))
  else
    raise RuntimeError.new("Unsupported ruby engine: #{RUBY_ENGINE}")
  end
end

.descriptionObject



40
41
42
# File 'lib/bel/resource/search/plugins/sqlite.rb', line 40

def self.description
  DESCRIPTION
end

.nameObject



36
37
38
# File 'lib/bel/resource/search/plugins/sqlite.rb', line 36

def self.name
  NAME
end