Class: Salesforce::Columns

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/salesforce/columns.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table_name) ⇒ Columns

Returns a new instance of Columns.



6
7
8
9
10
11
12
13
14
15
16
# 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

Instance Attribute Details

#by_nameObject

Returns the value of attribute by_name.



4
5
6
# File 'lib/salesforce/columns.rb', line 4

def by_name
  @by_name
end

#by_original_nameObject

Returns the value of attribute by_original_name.



4
5
6
# File 'lib/salesforce/columns.rb', line 4

def by_original_name
  @by_original_name
end

#table_nameObject

Returns the value of attribute table_name.



4
5
6
# File 'lib/salesforce/columns.rb', line 4

def table_name
  @table_name
end

Instance Method Details

#==(other) ⇒ Object



50
51
52
# File 'lib/salesforce/columns.rb', line 50

def ==(other)
  other && self.all.map(&:name) == other.all.map(&:name)
end

#allObject



22
23
24
# File 'lib/salesforce/columns.rb', line 22

def all
  @all ||= by_name.values.flatten
end

#createableObject



30
31
32
# File 'lib/salesforce/columns.rb', line 30

def createable
  select(&:createable?)
end

#each(&block) ⇒ Object



18
19
20
# File 'lib/salesforce/columns.rb', line 18

def each(&block)
  all.each(&block)
end

#editableObject



26
27
28
# File 'lib/salesforce/columns.rb', line 26

def editable
  @editable ||= select(&:editable?)
end

#find_by_name(name) ⇒ Object

Raises:



54
55
56
57
58
# 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_columnObject



38
39
40
# File 'lib/salesforce/columns.rb', line 38

def id_column
  find { |col| col.name.to_sym == :id }
end

#namesObject



42
43
44
# File 'lib/salesforce/columns.rb', line 42

def names
  map(&:name)
end

#soql_selectorObject



46
47
48
# File 'lib/salesforce/columns.rb', line 46

def soql_selector
  @soql_selector ||= by_original_name.keys.sort.join(',')
end

#updateableObject



34
35
36
# File 'lib/salesforce/columns.rb', line 34

def updateable
  select(&:updateable?)
end