class Sequel::Swift::Database

  1. lib/sequel/adapters/swift.rb
Parent: Swift

Methods

Public Class

  1. new

Public Instance

  1. connect
  2. execute
  3. execute_dui
  4. execute_insert
  5. swift_class

Attributes

swift_class [RW]

The Swift adapter class being used by this database. Connections in this database's connection pool will be instances of this class.

Public Class methods

new (opts)

Call the DATABASE_SETUP proc directly after initialization, so the object always uses sub adapter specific code. Also, raise an error immediately if the connection doesn't have a db_type specified, since one is required to include the correct subadapter.

[show source]
# File lib/sequel/adapters/swift.rb, line 45
def initialize(opts)
  super
  if db_type = opts[:db_type] and !db_type.to_s.empty? 
    if prok = DATABASE_SETUP[db_type.to_s.to_sym]
      prok.call(self)
    else
      raise(Error, "No :db_type option specified")
    end
  else
    raise(Error, ":db_type option not valid, should be postgres, mysql, or sqlite")
  end
end

Public Instance methods

connect (server)

Create an instance of #swift_class for the given options.

[show source]
# File lib/sequel/adapters/swift.rb, line 59
def connect(server)
  opts = server_opts(server)
  opts[:pass] = opts[:password]
  setup_connection(swift_class.new(opts))
end
execute (sql, opts={})

Execute the given SQL, yielding a Swift::Result if a block is given.

[show source]
# File lib/sequel/adapters/swift.rb, line 66
def execute(sql, opts={})
  synchronize(opts[:server]) do |conn|
    begin
      res = log_yield(sql){conn.execute(sql)}
      yield res if block_given?
      nil
    rescue ::Swift::Error => e
      raise_error(e)
    end
  end
end
execute_dui (sql, opts={})

Execute the SQL on the this database, returning the number of affected rows.

[show source]
# File lib/sequel/adapters/swift.rb, line 80
def execute_dui(sql, opts={})
  synchronize(opts[:server]) do |conn|
    begin
      log_yield(sql){conn.execute(sql).affected_rows}
    rescue ::Swift::Error => e
      raise_error(e)
    end
  end
end
execute_insert (sql, opts={})

Execute the SQL on this database, returning the primary key of the table being inserted to.

[show source]
# File lib/sequel/adapters/swift.rb, line 92
def execute_insert(sql, opts={})
  synchronize(opts[:server]) do |conn|
    begin
      log_yield(sql){conn.execute(sql).insert_id}
    rescue ::Swift::Error => e
      raise_error(e)
    end
  end
end