From 54fc7100b13a9407da56a59284649bdf76fbadd0 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Mon, 5 Dec 2022 15:15:51 +0100 Subject: [PATCH] wip --- app/models/communication/website/permalink.rb | 10 +++++++++- app/models/communication/website/permalink/post.rb | 11 +++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/models/communication/website/permalink.rb b/app/models/communication/website/permalink.rb index bbf449be5..9cd674123 100644 --- a/app/models/communication/website/permalink.rb +++ b/app/models/communication/website/permalink.rb @@ -83,12 +83,20 @@ class Communication::Website::Permalink < ApplicationRecord } end + def published_path + p = pattern + substitutions.each do |key, value| + p.gsub! ":#{key}", value + end + p + end + def published? # Can be overwritten true end - def published_path + def substitutions raise NotImplementedError end diff --git a/app/models/communication/website/permalink/post.rb b/app/models/communication/website/permalink/post.rb index f7dbdaa96..812cb8439 100644 --- a/app/models/communication/website/permalink/post.rb +++ b/app/models/communication/website/permalink/post.rb @@ -19,9 +19,12 @@ class Communication::Website::Permalink::Post < Communication::Website::Permalin website.id == about.communication_website_id && about.published && about.published_at end - def published_path - pattern - .gsub(":year/:month/:day", about.published_at.strftime("%Y/%m/%d")) - .gsub(":slug", about.slug) + def substitutions + { + year: about.published_at.year, + month: about.published_at.month, + day: about.published_at.day, + slug: about.slug + } end end -- GitLab