Class: Draisine::IntegrationGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/draisine/integration_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_salesforce_integrationsObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/draisine/integration_generator.rb', line 21

def create_salesforce_integrations
  @model_name = model.classify.singularize
  @model_file = "app/models/#{model.underscore.singularize}.rb"
  @table_name = model.underscore.gsub("/", "_").pluralize
  @migration_title = "CreateSalesforce#{model.classify.gsub('::', '').pluralize}"
  @migration_file = existing_migration_name(@migration_title) ||
                    "db/migrate/#{migration_number}_#{@migration_title.underscore}.rb"

  @salesforce_object_name = salesforce_object_name || model.classify.demodulize
  @materialized_model = Draisine.salesforce_client.materialize(@salesforce_object_name)
  @mapper = Draisine::TypeMapper.new(@materialized_model.type_map)
  @ar_col_defs = @mapper.active_record_column_defs
  @columns = @mapper.active_record_column_defs.map(&:column_name)
  @serialized_columns = @mapper.serialized_columns
  @array_columns = @mapper.array_columns
  @non_audited_columns = @mapper.columns - @mapper.updateable_columns

  template "migration.rb", @migration_file
  template "model.rb", @model_file
end