class LeapSalesforce::Generator::SoqlEnums
Creates Soql
Enumerations / Picklists from objects in LeapSalesforce.objects_to_verify
Constants
- ENUM_FOLDER
@return [String] Folder where enumeration objects are stored
Public Instance Methods
cleanup_files_created()
click to toggle source
Clean up files generated for all picklists
# File lib/leap_salesforce/generator/soql_enums.rb, line 72 def cleanup_files_created `rubocop -A #{ENUM_FOLDER} --display-only-fail-level-offenses --enable-pending-cops` end
create()
click to toggle source
Create Soql
enumerations for all objects specified to verify
# File lib/leap_salesforce/generator/soql_enums.rb, line 16 def create if LeapSalesforce.objects_to_verify.empty? raise LeapSalesforce::SetupError, 'LeapSalesforce.objects_to_verify is empty. ' \ 'Please set the list of objects you want to verify in .leap_salesforce:soql_objects ' \ 'and then run task "leaps:create_soql_objects" to create objects' end reset_enum_folder LeapSalesforce.objects_to_verify.each { |entity| create_picklists_for entity } cleanup_files_created end
create_picklists_for(entity)
click to toggle source
Create files for each picklist found for that entity @param [LeapSalesforce::SoqlData] entity An object representing an object in Salesforce
Object inheriting from SoqlData that has picklists underneath it
# File lib/leap_salesforce/generator/soql_enums.rb, line 30 def create_picklists_for(entity) soql_object = LeapSalesforce.soql_objects.find { |so| so.class_name == entity.to_s } raise "Could not find soql object for '#{entity}'" unless soql_object unless soql_object.create_enum != false puts "Skipping picklists for #{entity}" return end puts "Creating picklists for #{entity}" @entity_name = entity picklists = entity.picklists puts "#{picklists.count} picklists found" picklists.each do |picklist| if soql_object.excludes?(picklist) puts "Excluding picklist '#{picklist}'" else generate_picklist_file picklist end end end
generate_picklist_file(picklist)
click to toggle source
Generate file for a picklist from it's metadata
# File lib/leap_salesforce/generator/soql_enums.rb, line 52 def generate_picklist_file(picklist) @picklist = picklist @enum_name = picklist.to_class_name picklist_name = picklist.to_key_name values = @entity_name.picklist_for(picklist) @enum_values = {} values.each do |value| @enum_values[value.to_key_name_for(@enum_values)] = value end content = read_template 'picklist.rb.erb', binding file = File.join(ENUM_FOLDER, @entity_name.to_s.snakecase, "#{picklist_name}.rb") generate_file file, content end
reset_enum_folder()
click to toggle source
Reset state of Enum folder so that enums that no longer exist do not persist
# File lib/leap_salesforce/generator/soql_enums.rb, line 67 def reset_enum_folder FileUtils.rm_rf ENUM_FOLDER end