Skip to content

Commit c63ea99

Browse files
committed
Stop UniqueIdentifierGenerator from being a Singleton
It no longer needs to be as its lifecycle is now fully tied to the Redcarpet renderer
1 parent 5db95e6 commit c63ea99

File tree

4 files changed

+5
-25
lines changed

4 files changed

+5
-25
lines changed

lib/govuk_tech_docs/tech_docs_html_renderer.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ def initialize(options = {})
1212
end
1313

1414
def preprocess(document)
15-
UniqueIdentifierGenerator.instance.reset
16-
15+
@unique_identifier_generator = UniqueIdentifierGenerator.new
16+
1717
document
1818
end
1919

@@ -22,7 +22,7 @@ def paragraph(text)
2222
end
2323

2424
def header(text, level)
25-
anchor = UniqueIdentifierGenerator.instance.create(text, level)
25+
anchor = @unique_identifier_generator.create(text, level)
2626
%(<h#{level} id="#{anchor}">#{text}</h#{level}>\n)
2727
end
2828

lib/govuk_tech_docs/unique_identifier_generator.rb

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
require "singleton"
2-
31
module GovukTechDocs
42
class UniqueIdentifierGenerator
5-
include Singleton
63

74
Anchor = Struct.new(:id, :level)
85

96
attr_reader :anchors
107

118
def initialize
12-
reset
9+
@anchors = []
1310
end
1411

1512
def create(id, level)
@@ -28,10 +25,6 @@ def create(id, level)
2825
anchor
2926
end
3027

31-
def reset
32-
@anchors = []
33-
end
34-
3528
private
3629

3730
def prefixed_by_parent(anchor, level)

spec/govuk_tech_docs/tech_docs_html_renderer_spec.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ def hello_world
9797
end
9898

9999
describe "#render unique heading IDs" do
100-
# Reset the UniqueIdentifierGenerator between each tests to ensure independence
101-
before(:each) { GovukTechDocs::UniqueIdentifierGenerator.instance.reset }
102-
103100
it "Automatically assigns an ID to the heading" do
104101
output = processor.render <<~MARKDOWN
105102
# A heading

spec/govuk_tech_docs/unique_identifier_generator_spec.rb

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
RSpec.describe GovukTechDocs::UniqueIdentifierGenerator do
2-
subject { described_class.instance }
3-
before { subject.reset }
2+
subject { described_class.new }
43

54
describe "#create" do
65
it "lower-cases the text" do
@@ -66,13 +65,4 @@
6665
end
6766
end
6867
end
69-
70-
describe "#reset" do
71-
it "clears the list of existing anchors" do
72-
subject.create("An Anchor", 1)
73-
expect(subject.anchors).to_not be_empty
74-
subject.reset
75-
expect(subject.anchors).to be_empty
76-
end
77-
end
7868
end

0 commit comments

Comments
 (0)