Class: Gloo::Objs::Sqlite

Inherits:
Core::Obj show all
Defined in:
lib/gloo/objs/data/sqlite.rb

Constant Summary collapse

KEYWORD =
'sqlite'.freeze
KEYWORD_SHORT =
'sqlite'.freeze
DB =
'database'.freeze
DEFAULT_DB =
'test.db'.freeze
DB_REQUIRED_ERR =
'The database name is required!'.freeze
DB_NOT_FOUND_ERR =
'The database file was not found!'.freeze

Constants inherited from Core::Baseo

Core::Baseo::NOT_IMPLEMENTED_ERR

Instance Attribute Summary

Attributes inherited from Core::Obj

#children, #parent, #value

Attributes inherited from Core::Baseo

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Core::Obj

#add_child, can_create?, #can_receive_message?, #child_count, #child_index, #contains_child?, #delete_children, #dispatch, #display_value, #find_add_child, #find_child, #find_child_resolve_alias, #find_child_value, help, inherited, #initialize, #is_alias?, #is_container?, #is_function?, #msg_blank?, #msg_contains?, #msg_reload, #msg_unload, #multiline_value?, #pn, #remove_child, #render, #root?, #send_message, #set_parent, #set_value, #sql_value, #type_display, #value_display, #value_is_array?, #value_is_blank?, #value_string?

Methods inherited from Core::Baseo

#initialize, #type_display

Constructor Details

This class inherits a constructor from Gloo::Core::Obj

Class Method Details

.messagesObject

Get a list of message names that this object receives.



77
78
79
# File 'lib/gloo/objs/data/sqlite.rb', line 77

def self.messages
  return super + [ 'verify' ]
end

.short_typenameObject

The short name of the object type.



43
44
45
# File 'lib/gloo/objs/data/sqlite.rb', line 43

def self.short_typename
  return KEYWORD_SHORT
end

.typenameObject

The name of the object type.



36
37
38
# File 'lib/gloo/objs/data/sqlite.rb', line 36

def self.typename
  return KEYWORD
end

Instance Method Details

#add_children_on_create?Boolean

Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.

Returns:



56
57
58
# File 'lib/gloo/objs/data/sqlite.rb', line 56

def add_children_on_create?
  return true
end

#add_default_childrenObject

Add children to this object. This is used by containers to add children needed for default configurations.



65
66
67
68
# File 'lib/gloo/objs/data/sqlite.rb', line 65

def add_default_children
  fac = @engine.factory
  fac.create_string DB, DEFAULT_DB, self
end

#get_query_result(result) ⇒ Object

Based on the result set, build a QueryResult object.



128
129
130
131
132
133
134
135
# File 'lib/gloo/objs/data/sqlite.rb', line 128

def get_query_result( result )
  rows = []        
  while ( row = result.next ) do
    rows << row
  end

  return QueryResult.new( result.columns, rows )
end

#msg_verifyObject

Verify access to the Sqlite database specified.



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/gloo/objs/data/sqlite.rb', line 84

def msg_verify
  name = db_value
  if name.empty?
    @engine.err DB_REQUIRED_ERR
    @engine.heap.it.set_to false
    return
  end

  unless File.exist? name
    @engine.err DB_NOT_FOUND_ERR
    @engine.heap.it.set_to false
    return
  end

  return unless connects?

  @engine.heap.it.set_to true
end

#query(sql, params = nil) ⇒ Object

Open a connection and execute the SQL statement. Return the resulting data.



111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/gloo/objs/data/sqlite.rb', line 111

def query( sql, params = nil )
  name = db_value
  unless name
    @engine.err DB_REQUIRED_ERR
    return
  end

  db = SQLite3::Database.open name
  # db.results_as_hash = true
  results = db.query( sql, params )

  return results
end