class Connect::ModelsGenerator

Public Instance Methods

create_account() click to toggle source
# File lib/generators/connect/models_generator.rb, line 9
    def create_account
      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_contact() click to toggle source
# 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_contract() click to toggle source
# 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
directory() click to toggle source
# File lib/generators/connect/models_generator.rb, line 63
def directory
  "app/models/#{modname.underscore}"
end
modname() click to toggle source
# File lib/generators/connect/models_generator.rb, line 59
def modname
  options['module']
end