class Commons::Repositories::Catalogs::BaseCatalog

Public Class Methods

new() click to toggle source
# File lib/commons/repositories/catalogs/base_catalog.rb, line 57
def initialize
  @db_client ||= class_object
end

Public Instance Methods

create_from_params!(params) click to toggle source

Método que realiza un guardado de un objeto

@param [Array<Hash>] params Listado de parámetros del objeto

@return [Object] Objeto creado

@raises [ActiveRecord::RecordInvalid]

# File lib/commons/repositories/catalogs/base_catalog.rb, line 17
def create_from_params!(params)
  clear_cache
  @db_client.create!(params)
end
find_or_create_by!(params, &block) click to toggle source

Método que realiza una busqueda o guardado de un objeto

@param [Array<Hash>] params Listado de parámetros del objeto @param [block] block

@return [Object] Objeto creado

@raises [ActiveRecord::RecordInvalid]

# File lib/commons/repositories/catalogs/base_catalog.rb, line 32
def find_or_create_by!(params, &block)
  object = @db_client.find_by(params) || @db_client.create!(params, &block)
  clear_cache
  object
end
update_from_params!(id:, **params) click to toggle source

Método que realiza un guardado de un objeto

@param [Array<Hash>] params Listado de parámetros del objeto

@return [Object] Objeto creado

@raises [ActiveRecord::RecordInvalid]

# File lib/commons/repositories/catalogs/base_catalog.rb, line 47
def update_from_params!(id:, **params)
  object = @db_client.find_by!(id: id)
  object.update!(params)
  clear_cache

  object
end

Private Instance Methods

class_object() click to toggle source
# File lib/commons/repositories/catalogs/base_catalog.rb, line 61
def class_object
  model_name = self.class.to_s.gsub("Repository", "")
  Object.const_get model_name
end