module TweekCatalogue::Concerns::ObjectFactories::ClassMethods

Public Instance Methods

build_primary_key(*args) click to toggle source
# File lib/tweek_catalogue/concerns/object_factories.rb, line 27
def build_primary_key(*args); raise NotImplementedError end
first_or_create!(primary_key, attrs = {}) click to toggle source
# File lib/tweek_catalogue/concerns/object_factories.rb, line 20
def first_or_create!(primary_key, attrs = {})
  map_id!(primary_key) if primary_key.present?

  _primary_key = primary_key ? primary_key : send(:build_primary_key, attrs)
  first(_primary_key) || create!(_primary_key.merge(attrs))
end
update_or_create!(primary_key, attrs) click to toggle source
# File lib/tweek_catalogue/concerns/object_factories.rb, line 8
def update_or_create!(primary_key, attrs)
  map_id!(primary_key) if primary_key.present?

  record = first(primary_key)
  if record
    record.update_attributes(attrs)
    record
  else
    create!(primary_key.merge(attrs))
  end
end

Private Instance Methods

map_id!(attrs) click to toggle source
# File lib/tweek_catalogue/concerns/object_factories.rb, line 31
def map_id!(attrs)
  attrs[:tmdb_id] = attrs[:tmdb_id].to_s if attrs[:tmdb_id].present?
end