File: contact.rb

package info (click to toggle)
rails 2%3A7.2.2.1%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 43,352 kB
  • sloc: ruby: 349,799; javascript: 30,703; yacc: 46; sql: 43; sh: 29; makefile: 27
file content (43 lines) | stat: -rw-r--r-- 1,086 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# frozen_string_literal: true

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

      lease_connection.data_sources = [table_name]
      lease_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 = {})
    lease_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