Files

Class/Module Index [+]

Quicksearch

ArJdbc::FireBird

Public Class Methods

arel2_visitors(config) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 34
def self.arel2_visitors(config)
  require 'arel/visitors/firebird'
  {
    'firebird' => ::Arel::Visitors::Firebird,
    'firebirdsql' => ::Arel::Visitors::Firebird
  }
end
extended(mod) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 8
def self.extended(mod)
  unless @@_lob_callback_added
    ActiveRecord::Base.class_eval do
      def after_save_with_firebird_blob
        self.class.columns.select { |c| c.sql_type =~ /blob/ }.each do |column|
          value = ::ArJdbc::SerializedAttributesHelper.dump_column_value(self, column)
          next if value.nil?
          
          connection.write_large_object(
            column.type == :binary, column.name, 
            self.class.table_name, self.class.primary_key, 
            quote_value(id), value
          )
        end
      end
    end

    ActiveRecord::Base.after_save :after_save_with_firebird_blob
    @@_lob_callback_added = true
  end
end

Public Instance Methods

adapter_name() click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 30
def adapter_name
  'Firebird'
end
after_save_with_firebird_blob() click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 11
def after_save_with_firebird_blob
  self.class.columns.select { |c| c.sql_type =~ /blob/ }.each do |column|
    value = ::ArJdbc::SerializedAttributesHelper.dump_column_value(self, column)
    next if value.nil?
    
    connection.write_large_object(
      column.type == :binary, column.name, 
      self.class.table_name, self.class.primary_key, 
      quote_value(id), value
    )
  end
end
modify_types(types) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 42
def modify_types(types)
  super(types)
  types[:primary_key] = 'INTEGER NOT NULL PRIMARY KEY'
  types[:string][:limit] = 252
  types[:integer][:limit] = nil
  types
end
next_sequence_value(sequence_name) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 71
def next_sequence_value(sequence_name)
  select_one("SELECT GEN_ID(#{sequence_name}, 1 ) FROM RDB$DATABASE;")["gen_id"]
end
prefetch_primary_key?(table_name = nil) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 63
def prefetch_primary_key?(table_name = nil)
  true
end
rename_column(table_name, column_name, new_column_name) click to toggle source
# File lib/arjdbc/firebird/adapter.rb, line 94
def rename_column(table_name, column_name, new_column_name)
  execute "ALTER TABLE #{table_name} ALTER  #{column_name} TO #{new_column_name}"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.