Class: Pgerd::Table

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Comparable
Defined in:
lib/pgerd/table.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database, name) ⇒ Table

Returns a new instance of Table.



11
12
13
14
# File 'lib/pgerd/table.rb', line 11

def initialize(database, name)
  @database = database
  @name = name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/pgerd/table.rb', line 8

def name
  @name
end

Instance Method Details

#<=>(other) ⇒ Object



16
17
18
# File 'lib/pgerd/table.rb', line 16

def <=>(other)
  name <=> other.name
end

#columnsObject



20
21
22
23
24
25
# File 'lib/pgerd/table.rb', line 20

def columns
  connection
    .exec_params("select column_name, data_type from information_schema.columns where table_name='#{safe_name}'")
    .map { |record| Column.new(record['column_name'], record['data_type']) }
    .sort
end

#foreign_keysObject



35
36
37
# File 'lib/pgerd/table.rb', line 35

def foreign_keys
  @database.foreign_keys.select { |key| key.for_table? name }
end

#safe_nameObject



27
28
29
# File 'lib/pgerd/table.rb', line 27

def safe_name
  connection.escape_string(@name)
end

#to_sObject



31
32
33
# File 'lib/pgerd/table.rb', line 31

def to_s
  "#{name} [label = <>]"
end