Module: ExternalId::WithExternalId

Extended by:
ActiveSupport::Concern
Defined in:
lib/external_id/concerns/with_external_id.rb

Instance Method Summary collapse

Instance Method Details

#add_external_id(external_id_object = nil, provider: nil, id: nil) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/external_id/concerns/with_external_id.rb', line 23

def add_external_id(external_id_object = nil, provider: nil, id: nil)
  if external_id_object.blank? && provider.blank? && id.blank?
    raise 'Either ExternalId::Value or provider and id are required'
  end

  eid = external_id_object.is_a?(::ExternalId::Value) ? external_id_object : ::ExternalId::Value.new(provider: provider, id: id)

  ::ExternalId::ExternalId.find_or_create_by!(provider: eid.provider, external_id: eid.id, resource: self)
end

#external_idObject



33
34
35
# File 'lib/external_id/concerns/with_external_id.rb', line 33

def external_id
  ::ExternalId::Value.from_model(eid)
end