> For the complete documentation index, see [llms.txt](https://la-guia.platan.us/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://la-guia.platan.us/stack/ruby_rails/power_types/patrones/values.md).

# 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`:

```ruby
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`:

```ruby
# 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.
