26 lines
616 B
Ruby
26 lines
616 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# La relación de un sitio con sus artículos, esto nos permite generar
|
||
|
# artículos como si estuviésemos usando ActiveRecord.
|
||
|
class PostRelation < Array
|
||
|
# No necesitamos cambiar el sitio
|
||
|
attr_reader :site
|
||
|
|
||
|
def initialize(site:)
|
||
|
@site = site
|
||
|
# Proseguimos la inicialización sin valores por defecto
|
||
|
super()
|
||
|
end
|
||
|
|
||
|
# Genera un artículo nuevo con los parámetros que le pasemos y lo suma
|
||
|
# al array
|
||
|
def build(**args)
|
||
|
self << Post.new(site: site, **args)
|
||
|
end
|
||
|
|
||
|
# Intenta guardar todos y devuelve true si pudo
|
||
|
def save_all
|
||
|
map(&:save).all?
|
||
|
end
|
||
|
end
|