Class: Connect::ModelsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/connect/models_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_accountObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/generators/connect/models_generator.rb', line 9

def 
  create_file "#{directory}/account.rb", <<-FILE
  module #{modname}
class Account < ApplicationRecord
  require 'connect/record'
  include Connect::Record
  self.table_name = "salesforce.account"

  has_many :salesforce_contacts, class_name: "#{modname}::Contact",
    foreign_key: :accountid, primary_key: :sfid, dependent: :nullify

  has_one :salesforce_contract, class_name: "#{modname}::Contract",
    foreign_key: :accountid, primary_key: :sfid, dependent: :nullify
end
  end
  FILE
end

#create_contactObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/generators/connect/models_generator.rb', line 27

def create_contact
  create_file "#{directory}/contact.rb", <<-FILE
  module #{modname}
class Contact < ApplicationRecord
  require 'connect/record'
  include Connect::Record
  self.table_name = "salesforce.contact"

  validates :email, presence: true, uniqueness: true

  belongs_to :salesforce_account, class_name: "Salesforce::Account",
    primary_key: :sfid, foreign_key: :accountid, optional: true
end
  end
  FILE
end

#create_contractObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/generators/connect/models_generator.rb', line 44

def create_contract
  create_file "#{directory}/contract.rb", <<-FILE
  module #{modname}
class Contract < ApplicationRecord
  require 'connect/record'
  include Connect::Record
  self.table_name = "salesforce.contract"

  belongs_to :salesforce_account, class_name: "Salesforce::Account",
    primary_key: :sfid, foreign_key: :accountid
end
  end
  FILE
end

#directoryObject



63
64
65
# File 'lib/generators/connect/models_generator.rb', line 63

def directory
  "app/models/#{modname.underscore}"
end

#modnameObject



59
60
61
# File 'lib/generators/connect/models_generator.rb', line 59

def modname
  options['module']
end