Class: Gloo::Objs::Pg

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

Constant Summary collapse

KEYWORD =
'postgres'.freeze
KEYWORD_SHORT =
'pg'.freeze
HOST =
'host'.freeze
DB =
'database'.freeze
USER =
'username'.freeze
PASSWD =
'password'.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.



70
71
72
# File 'lib/gloo/objs/data/pg.rb', line 70

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

.short_typenameObject

The short name of the object type.



33
34
35
# File 'lib/gloo/objs/data/pg.rb', line 33

def self.short_typename
  return KEYWORD_SHORT
end

.typenameObject

The name of the object type.



26
27
28
# File 'lib/gloo/objs/data/pg.rb', line 26

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:



46
47
48
# File 'lib/gloo/objs/data/pg.rb', line 46

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.



55
56
57
58
59
60
61
# File 'lib/gloo/objs/data/pg.rb', line 55

def add_default_children
  fac = @engine.factory
  fac.create_string HOST, nil, self
  fac.create_string DB, nil, self
  fac.create_string USER, nil, self
  fac.create_string PASSWD, nil, self
end

#get_query_result(result) ⇒ Object

Based on the result set, build a QueryResult object.



125
126
127
# File 'lib/gloo/objs/data/pg.rb', line 125

def get_query_result( result )
  return QueryResult.new result[0], result[1], @engine
end

#msg_verifyObject

SSH to the host and execute the command, then update result.



77
78
79
80
81
# File 'lib/gloo/objs/data/pg.rb', line 77

def msg_verify
  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.



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/gloo/objs/data/pg.rb', line 91

def query( sql, params = nil )
  heads = []
  data = []
  client = pg_conn

  if params
    param_arr =  []
    params.each do |p|
      param_arr << { :value => p, :type => 0, :format => 0 }
    end
    rs = client.exec_params( sql, params )
  else
    rs = client.exec( sql )
  end

  if rs && ( rs.count > 0 )
    rs[0].each do |name, val|
      heads << name
    end
    rs.each_with_index do |row, index|
      arr = []
      row.each do |name, val|
        arr << val
      end
      data << arr
    end
  end

  return [ heads, data ]
end