Class: Salesforce::Columns
- Inherits:
-
Object
- Object
- Salesforce::Columns
- Includes:
- Enumerable
- Defined in:
- lib/salesforce/columns.rb
Instance Attribute Summary collapse
-
#by_name ⇒ Object
Returns the value of attribute by_name.
-
#by_original_name ⇒ Object
Returns the value of attribute by_original_name.
-
#table_name ⇒ Object
Returns the value of attribute table_name.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #all ⇒ Object
- #createable ⇒ Object
- #each(&block) ⇒ Object
- #editable ⇒ Object
- #find_by_name(name) ⇒ Object
- #id_column ⇒ Object
-
#initialize(table_name) ⇒ Columns
constructor
A new instance of Columns.
- #names ⇒ Object
- #soql_selector ⇒ Object
- #updateable ⇒ Object
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_name ⇒ Object
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_name ⇒ Object
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_name ⇒ Object
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 |
#all ⇒ Object
22 23 24 |
# File 'lib/salesforce/columns.rb', line 22 def all @all ||= by_name.values.flatten end |
#createable ⇒ Object
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 |
#editable ⇒ Object
26 27 28 |
# File 'lib/salesforce/columns.rb', line 26 def editable @editable ||= select(&:editable?) end |
#find_by_name(name) ⇒ Object
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_column ⇒ Object
38 39 40 |
# File 'lib/salesforce/columns.rb', line 38 def id_column find { |col| col.name.to_sym == :id } end |
#names ⇒ Object
42 43 44 |
# File 'lib/salesforce/columns.rb', line 42 def names map(&:name) end |
#soql_selector ⇒ Object
46 47 48 |
# File 'lib/salesforce/columns.rb', line 46 def soql_selector @soql_selector ||= by_original_name.keys.sort.join(',') end |
#updateable ⇒ Object
34 35 36 |
# File 'lib/salesforce/columns.rb', line 34 def updateable select(&:updateable?) end |