Class: Gisele::VM::ProgList::Sqldb
Instance Attribute Summary collapse
Attributes inherited from Storage
#options
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Storage
#save
Methods inherited from Component
#connected!, #connected?, #registered, #registered!, #registered?, #unregistered, #vm
Constructor Details
#initialize(options = {}) ⇒ Sqldb
Returns a new instance of Sqldb.
9
10
11
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 9
def initialize(options = {})
super(default_options.merge(options))
end
|
Instance Attribute Details
#sequel_db ⇒ Object
Returns the value of attribute sequel_db.
7
8
9
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 7
def sequel_db
@sequel_db
end
|
Class Method Details
.sqlite_protocol ⇒ Object
17
18
19
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 17
def self.sqlite_protocol
defined?(JRUBY_VERSION) ? "jdbc:sqlite" : "sqlite"
end
|
Instance Method Details
#clear ⇒ Object
46
47
48
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 46
def clear
sequel_db[table_name].delete
end
|
#connect ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 21
def connect
super
@sequel_db = Sequel.connect(connection_info)
@sequel_db.test_connection
ensure_schema(@sequel_db)
self
end
|
#default_options ⇒ Object
13
14
15
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 13
def default_options
{ :table_name => :gvm_proglist }
end
|
#disconnect ⇒ Object
29
30
31
32
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 29
def disconnect
super
@sequel_db.disconnect if @sequel_db
end
|
#fetch(puid) ⇒ Object
34
35
36
37
38
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 34
def fetch(puid)
got = sequel_db[table_name].where(:puid => puid).first
raise InvalidPUIDError, "Invalid puid: `#{puid.inspect}`" unless got
decode(got)
end
|
#pick(restriction) ⇒ Object
40
41
42
43
44
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 40
def pick(restriction)
c = sequel_db[table_name].
where(encode(restriction)).limit(1).first
c && decode(c)
end
|
#to_relation(restriction = nil) ⇒ Object
50
51
52
53
54
55
|
# File 'lib/gisele/vm/prog_list/sqldb.rb', line 50
def to_relation(restriction = nil)
tuples = sequel_db[table_name]
tuples = tuples.where(encode(restriction)) if restriction
tuples = tuples.map{|t| decode(t, false)}
Alf::Relation(tuples)
end
|