Module: Import::PlaceholderReferences::AliasResolver

Extended by:
AliasResolver
Included in:
AliasResolver
Defined in:
lib/import/placeholder_references/alias_resolver.rb

Constant Summary collapse

MissingAlias =
Class.new(StandardError)
NOTE_COLUMNS =
{ "author_id" => "author_id", "updated_by_id" => "updated_by_id",
"resolved_by_id" => "resolved_by_id" }.freeze
NOTE_EXCLUSIONS =
%w[updated_by_id resolved_by_id].freeze

Instance Method Summary collapse

Instance Method Details

#aliased_column(model, column, version:) ⇒ Object



245
246
247
248
249
250
251
252
# File 'lib/import/placeholder_references/alias_resolver.rb', line 245

def aliased_column(model, column, version:)
  aliased_column = aliases.dig(model, version, :columns, column)
  return aliased_column if aliased_column.present?

  track_error_for_missing(model: model, column: column, version: version)

  column
end

#aliased_model(model, version:) ⇒ Object



236
237
238
239
240
241
242
243
# File 'lib/import/placeholder_references/alias_resolver.rb', line 236

def aliased_model(model, version:)
  aliased_model = aliases.dig(model, version, :model)
  return aliased_model if aliased_model.present?

  track_error_for_missing(model:, version:)

  model.safe_constantize || (raise missing_alias_error(model:, version:))
end

#aliasesObject



224
225
226
# File 'lib/import/placeholder_references/alias_resolver.rb', line 224

def aliases
  ALIASES
end

#models_with_dataObject



254
255
256
257
258
# File 'lib/import/placeholder_references/alias_resolver.rb', line 254

def models_with_data
  aliases.values
    .map { |versions| versions[versions.keys.max] }
    .map { |data| [data[:model], data] }
end

#version_for_model(model) ⇒ Object



228
229
230
231
232
233
234
# File 'lib/import/placeholder_references/alias_resolver.rb', line 228

def version_for_model(model)
  return aliases[model].keys.max if aliases[model]

  track_error_for_missing(model: model)

  1
end