class Restforce::SObject

def attrs

key and parent/child relationships removed.
Public: Returns a hash representation of this object with the attributes
def attrs
  self.to_hash.reject { |key, _| key =~ /.*__r/ || key =~ /^attributes$/ }
end

def describe

Public: Get the describe for this sobject type
def describe
  @client.describe(sobject_type)
end

def describe_layouts(layout_id = nil)

Public: Describe layouts for this sobject type
def describe_layouts(layout_id = nil)
  @client.describe_layouts(sobject_type, layout_id)
end

def destroy

account.destroy
account = client.query('select Id, Name from Account').first

Examples

Public: Destroy this record.
def destroy
  ensure_id
  @client.destroy(sobject_type, self.Id)
end

def destroy!

def destroy!
  ensure_id
  @client.destroy!(sobject_type, self.Id)
end

def ensure_id

def ensure_id
  return true if self.Id?
  raise ArgumentError, 'You need to query the Id for the record first.'
end

def save

account.save
account.Name = 'Foobar'
account = client.query('select Id, Name from Account').first

Examples

Public: Persist the attributes to Salesforce.
def save
  ensure_id
  @client.update(sobject_type, attrs)
end

def save!

def save!
  ensure_id
  @client.update!(sobject_type, attrs)
end

def sobject_type

def sobject_type
  self.attributes['type']
end

def to_sparam

def to_sparam
  self.Id
end