Sha256: 60267352916e0591d61621eab4cb4cb6207d2668e34e4826cc2e91430cf13857

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module ContactFakeColumns
  def self.extended(base)
    base.class_eval do
      establish_connection(adapter: "fake")

      connection.data_sources = [table_name]
      connection.primary_keys = {
        table_name => "id"
      }

      column :id,             "integer"
      column :name,           "string"
      column :age,            "integer"
      column :avatar,         "binary"
      column :created_at,     "datetime"
      column :awesome,        "boolean"
      column :preferences,    "string"
      column :alternative_id, "integer"

      serialize :preferences

      belongs_to :alternative, class_name: "Contact"
    end
  end

  # mock out self.columns so no pesky db is needed for these tests
  def column(name, sql_type = nil, options = {})
    connection.merge_column(table_name, name, sql_type, options)
  end
end

class Contact < ActiveRecord::Base
  extend ContactFakeColumns
end

class ContactSti < ActiveRecord::Base
  extend ContactFakeColumns
  column :type, "string"

  def type; "ContactSti" end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ibm_db-5.5.0 test/models/contact.rb
ibm_db-5.4.1 test/models/contact.rb
ibm_db-5.4.0 test/models/contact.rb
ibm_db-5.3.2 test/models/contact.rb
ibm_db-5.3.1 test/models/contact.rb