Class: LeapSalesforce::SoqlObject

Inherits:
Object
  • Object
show all
Defined in:
lib/leap_salesforce/soql_object.rb

Overview

Container for information regarding a SoqlObject

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description) ⇒ SoqlObject

Create a representation of a Soql object from a description (usually in .leap_salesforce.yml)

Examples:

Specific Salesforce object ‘Case’ to be represented

'Case'

Represent Broker object by class with different name

{ 'Broker' => Broker__c }

Represent Group object, specifying to ignore enums

{"Group"=>nil, "create_enum"=>true} }

Represent User object, specifying to ignore enum with name of Timezone

{"User"=>nil, "create_enum"=>{"exclude"=>["Timezone"]}}

Parameters:



27
28
29
30
31
# File 'lib/leap_salesforce/soql_object.rb', line 27

def initialize(description)
  self.description = description
  interpret_description
  self.reference = @class_name.snakecase
end

Instance Attribute Details

#backend_nameString

Returns Salesforce backend name.

Returns:

  • (String)

    Salesforce backend name



9
10
11
# File 'lib/leap_salesforce/soql_object.rb', line 9

def backend_name
  @backend_name
end

#class_nameString

Returns Ruby class name.

Returns:

  • (String)

    Ruby class name



7
8
9
# File 'lib/leap_salesforce/soql_object.rb', line 7

def class_name
  @class_name
end

#create_enumBoolean, Hash

Returns Whether to create enumerations for object.

Returns:

  • (Boolean, Hash)

    Whether to create enumerations for object



15
16
17
# File 'lib/leap_salesforce/soql_object.rb', line 15

def create_enum
  @create_enum
end

#descriptionString

Returns Description of Soql object from ‘.leap_salesforce’ YAML.

Returns:

  • (String)

    Description of Soql object from ‘.leap_salesforce’ YAML



13
14
15
# File 'lib/leap_salesforce/soql_object.rb', line 13

def description
  @description
end

#referenceString

Returns Snakecase version of ruby class. Name for methods / files to refer to class as.

Returns:

  • (String)

    Snakecase version of ruby class. Name for methods / files to refer to class as



11
12
13
# File 'lib/leap_salesforce/soql_object.rb', line 11

def reference
  @reference
end

Instance Method Details

#excludes?(picklist) ⇒ Boolean

Returns Whether picklist should be excluded from being generated.

Parameters:

Returns:

  • (Boolean)

    Whether picklist should be excluded from being generated



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/leap_salesforce/soql_object.rb', line 35

def excludes?(picklist)
  if create_enum.is_a? Hash
    if create_enum['exclude']
      picklist_class = picklist.to_class_name
      create_enum['exclude'].any? do |exclusion_list|
        !picklist.to_s[Regexp.new(exclusion_list)].nil? || !picklist_class[Regexp.new(exclusion_list)].nil?
      end
    else
      false
    end
  else
    false
  end
end