From bcf3cb638f3971c187df1a56a34a83b01e5cb366 Mon Sep 17 00:00:00 2001 From: clayton <6334+clayton@users.noreply.github.com> Date: Sun, 6 Feb 2022 09:09:31 -0700 Subject: [PATCH] does not modify source column during normalization --- .ruby-version | 1 + lib/slug/slug.rb | 2 +- test/slug_test.rb | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .ruby-version diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..37c2961 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.2 diff --git a/lib/slug/slug.rb b/lib/slug/slug.rb index 23aa38e..51695ee 100644 --- a/lib/slug/slug.rb +++ b/lib/slug/slug.rb @@ -48,7 +48,7 @@ def set_slug(opts={}) validate_slug_columns return if self[self.slug_column].present? && !opts[:force] - self[self.slug_column] = normalize_slug(self.send(self.slug_source)) + self[self.slug_column] = normalize_slug(self.send(self.slug_source).dup) # if normalize_slug returned a blank string, try the generic_default handling if generic_default && self[self.slug_column].blank? diff --git a/test/slug_test.rb b/test/slug_test.rb index 607587a..5d7c324 100644 --- a/test/slug_test.rb +++ b/test/slug_test.rb @@ -28,6 +28,11 @@ assert_equal(orphan.id.to_s, query) end + it "does not modify the source column" do + article = Article.create(headline: 'A long, complex, headline') + assert_equal('A long, complex, headline', article.headline) + end + describe "slug column" do it "saves slug to 'slug' column by default" do article = Article.create!(:headline => 'Test Headline')