From 1364cc070fff6b18cd495e80387214f8f8f618dc Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Wed, 10 May 2023 15:35:09 +0400 Subject: [PATCH] Improve code --- lib/diversipub/rack_app.rb | 57 ++++++++++++++------------------------ 1 file changed, 21 insertions(+), 36 deletions(-) diff --git a/lib/diversipub/rack_app.rb b/lib/diversipub/rack_app.rb index 70a16ab..0e55188 100644 --- a/lib/diversipub/rack_app.rb +++ b/lib/diversipub/rack_app.rb @@ -60,48 +60,14 @@ module Diversipub ACCT_RU = 'acct:ru@causa-arcana.com' ACCT_EN = 'acct:en@causa-arcana.com' - RU = { - subject: ACCT_RU, - aliases: [].freeze, - links: [ - { - rel: 'http://webfinger.net/rel/profile-page', - type: 'text/html', - href: 'https://causa-arcana.com/ru/blog/feed.html', - }, - { - rel: 'http://webfinger.net/rel/profile-page', - type: 'text/gemini; charset=utf-8', - href: 'gemini://causa-arcana.com/ru/blog/feed.gmi', - }, - ].freeze, - }.freeze - - EN = { - subject: ACCT_EN, - aliases: [].freeze, - links: [ - { - rel: 'http://webfinger.net/rel/profile-page', - type: 'text/html', - href: 'https://causa-arcana.com/en/blog/feed.html', - }, - { - rel: 'http://webfinger.net/rel/profile-page', - type: 'text/gemini; charset=utf-8', - href: 'gemini://causa-arcana.com/en/blog/feed.gmi', - }, - ].freeze, - }.freeze - def call(env) request = Rack::Request.new env resource = request.params['resource'] data = case resource - when ACCT_RU then RU - when ACCT_EN then EN + when ACCT_RU then build_data :ru + when ACCT_EN then build_data :en else raise 'Unknown resource' end @@ -116,6 +82,25 @@ module Diversipub ], ] end + + def build_data(name) + { + subject: "acct:#{name}@causa-arcana.com", + aliases: [].freeze, + links: [ + { + rel: 'http://webfinger.net/rel/profile-page', + type: 'text/html', + href: "https://causa-arcana.com/#{name}/blog/feed.html", + }, + { + rel: 'http://webfinger.net/rel/profile-page', + type: 'text/gemini; charset=utf-8', + href: "gemini://causa-arcana.com/#{name}/blog/feed.gmi", + }, + ].freeze, + }.freeze + end end end end