From 1aec81d008ae174a3aa5e53f4c354616baaf3761 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Tue, 21 Oct 2025 21:35:21 +0900 Subject: [PATCH 1/3] bundle active_decorator --- Gemfile | 2 ++ Gemfile.lock | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Gemfile b/Gemfile index 10deeda..4c116e2 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,8 @@ gem "stimulus-rails" gem 'tailwindcss-rails' +gem 'active_decorator' + # Use Redis adapter to run Action Cable in production # gem "redis", ">= 4.0.1" diff --git a/Gemfile.lock b/Gemfile.lock index b3f2dea..c4d225a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,6 +44,8 @@ GEM erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) + active_decorator (1.5.1) + activesupport activejob (8.0.3) activesupport (= 8.0.3) globalid (>= 0.3.6) @@ -347,6 +349,7 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES + active_decorator aws-sdk-s3 (~> 1) bootsnap brakeman From 1e12eb0fafaa8fd36d3acc9ab27b50fec029f4ec Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Tue, 21 Oct 2025 21:36:05 +0900 Subject: [PATCH 2/3] rails g decorator message --- app/decorators/message_decorator.rb | 4 ++++ test/decorators/message_decorator_test.rb | 13 +++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 app/decorators/message_decorator.rb create mode 100644 test/decorators/message_decorator_test.rb diff --git a/app/decorators/message_decorator.rb b/app/decorators/message_decorator.rb new file mode 100644 index 0000000..aee3864 --- /dev/null +++ b/app/decorators/message_decorator.rb @@ -0,0 +1,4 @@ +# frozen_string_literal: true + +module MessageDecorator +end diff --git a/test/decorators/message_decorator_test.rb b/test/decorators/message_decorator_test.rb new file mode 100644 index 0000000..fee9e3a --- /dev/null +++ b/test/decorators/message_decorator_test.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require 'test_helper' + +class MessageDecoratorTest < ActiveSupport::TestCase + def setup + @message = Message.new.extend MessageDecorator + end + + # test "the truth" do + # assert true + # end +end From 13aa433cebba48e7ce5693fd9bc109f163b92ab3 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Tue, 21 Oct 2025 21:38:51 +0900 Subject: [PATCH 3/3] Mask email address on Message#from like the original blade did --- app/decorators/message_decorator.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/decorators/message_decorator.rb b/app/decorators/message_decorator.rb index aee3864..51f008c 100644 --- a/app/decorators/message_decorator.rb +++ b/app/decorators/message_decorator.rb @@ -1,4 +1,7 @@ # frozen_string_literal: true module MessageDecorator + def from + super&.gsub(/@[a-zA-Z.\-]+/, '@...') + end end