class Salesforce::Columns

Attributes

by_name[RW]
by_original_name[RW]
table_name[RW]

Public Class Methods

new(table_name) click to toggle source
# File lib/salesforce/columns.rb, line 6
def initialize(table_name)
  self.table_name = table_name
  fields = Connection.fields(table_name)
  self.by_name          = {}
  self.by_original_name = {}
  fields.each do |field|
    column = Column.new(field)
    by_name[column.name] = column
    by_original_name[column.original_name] = column
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/salesforce/columns.rb, line 50
def ==(other)
  other && self.all.map(&:name) == other.all.map(&:name)
end
all() click to toggle source
# File lib/salesforce/columns.rb, line 22
def all
  @all ||= by_name.values.flatten
end
createable() click to toggle source
# File lib/salesforce/columns.rb, line 30
def createable
  select(&:createable?)
end
each(&block) click to toggle source
# File lib/salesforce/columns.rb, line 18
def each(&block)
  all.each(&block)
end
editable() click to toggle source
# File lib/salesforce/columns.rb, line 26
def editable
  @editable ||= select(&:editable?)
end
find_by_name(name) click to toggle source
# File lib/salesforce/columns.rb, line 54
def find_by_name(name)
  column = by_name[name.to_s]
  raise ColumnNotFound.new(name, table_name) unless column
  column
end
id_column() click to toggle source
# File lib/salesforce/columns.rb, line 38
def id_column
  find { |col| col.name.to_sym == :id }
end
names() click to toggle source
# File lib/salesforce/columns.rb, line 42
def names
  map(&:name)
end
soql_selector() click to toggle source
# File lib/salesforce/columns.rb, line 46
def soql_selector
  @soql_selector ||= by_original_name.keys.sort.join(',')
end
updateable() click to toggle source
# File lib/salesforce/columns.rb, line 34
def updateable
  select(&:updateable?)
end