Class: PSQL::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/psql/database.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Database

Returns a new instance of Database.



6
7
8
9
10
11
12
13
# File 'lib/psql/database.rb', line 6

def initialize( name )
  @name = case name
  when String
    name
  when :rails
    find_rails_database_name
  end
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



14
15
16
# File 'lib/psql/database.rb', line 14

def name
  @name
end

Instance Method Details

#object(object_name) ⇒ Object Also known as: []

Finds a database object by name. Objects are tables, views, or sequences.



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/psql/database.rb', line 19

def object( object_name )
  object = objects.find do |obj|
    obj[ 'name' ] == object_name
  end

  if !object
    raise "Database #{name} does not have an object named '#{object_name}'."
  end

  klass = PSQL.const_get object[ 'type' ].capitalize
  klass.new object[ 'name' ], name
end