5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-26 16:36:21 +00:00

BREAKING CHANGE: eliminar Site#posts

This commit is contained in:
f 2023-10-06 10:17:26 -03:00
parent b2e6b76870
commit 7df1af2a54
No known key found for this signature in database

View file

@ -230,55 +230,6 @@ class Site < ApplicationRecord
@config ||= Site::Config.new(self) @config ||= Site::Config.new(self)
end end
# Los posts en el idioma actual o en uno en particular
#
# @param lang: [String|Symbol] traer los artículos de este idioma
def posts(lang: nil)
# Traemos los posts del idioma actual por defecto o el que haya
lang ||= locales.include?(I18n.locale) ? I18n.locale : default_locale
lang = lang.to_sym
# Crea un Struct dinámico con los valores de los locales, si
# llegamos a pasar un idioma que no existe vamos a tener una
# excepción NoMethodError
@posts ||= Struct.new(*locales).new
return @posts[lang] unless @posts[lang].blank?
@posts[lang] = PostRelation.new site: self, lang: lang
# No fallar si no existe colección para este idioma
# XXX: queremos fallar silenciosamente?
(collections[lang.to_s]&.docs || []).each do |doc|
layout = layouts[Post.find_layout(doc.path)]
@posts[lang].build(document: doc, layout: layout, lang: lang)
rescue TypeError => e
ExceptionNotifier.notify_exception(e, data: { site: name, site_id: id, path: doc.path })
end
@posts[lang]
end
# Todos los Post del sitio para poder buscar en todos.
#
# @return PostRelation
def docs
@docs ||= PostRelation.new(site: self, lang: :docs).push(locales.flat_map do |locale|
posts(lang: locale)
end).flatten!
end
# Elimina un artículo de la colección
def delete_post(post)
lang = post.lang.value
collections[lang.to_s].docs.delete(post.document) &&
posts(lang: lang).delete(post)
post
end
# Obtiene todas las plantillas de artículos # Obtiene todas las plantillas de artículos
# #
# @return [Hash] { post: Layout } # @return [Hash] { post: Layout }
@ -433,7 +384,6 @@ class Site < ApplicationRecord
@incompatible_layouts = nil @incompatible_layouts = nil
@jekyll = nil @jekyll = nil
@config = nil @config = nil
@posts = nil
@docs = nil @docs = nil
end end