Values

Los values corresponden a clases Ruby que pueden ser utilizadas para contener información que no persiste en la base de datos, y por lo tanto solo existe en memoria. Entonces si por ejemplo, generamos dinámicamente un reporte, en vez de retornarlo como Hash:

class BuildCleaningReport < PowerTypes::Command.new(:data)
  def perform
    # execute report logic, and finally return:
    {
      date: @date,
      area: cleaned_area,
      duration: cleaning.time,
      effiency: cleaned_area / cleaning.time
    }
  end
end

Mejor encapsular el resultado en una clase Report:

# app/values/report.rb
class Report
  attr_accesor :date, :area, :duration

  def eficciency
    area / duration
  end
end

Estos objetos pueden ser utilizados para mover la información de forma estructurada dentro de las distintas capas de la aplicación.

Última actualización