diff options
Diffstat (limited to 'activerecord/test/models/contact.rb')
-rw-r--r-- | activerecord/test/models/contact.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/activerecord/test/models/contact.rb b/activerecord/test/models/contact.rb new file mode 100644 index 0000000000..6e02ff199b --- /dev/null +++ b/activerecord/test/models/contact.rb @@ -0,0 +1,43 @@ +# 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 |