Skip to content

Commit

Permalink
use its constantize instead the one from inflector
Browse files Browse the repository at this point in the history
  • Loading branch information
marcosgz committed Feb 5, 2025
1 parent a3fb8d8 commit 6f7c8e7
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/site_maps/primitive/string.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def constantize
end

def underscore
new_str = inflector&.underscore(self) || sub(/^::/, "")
new_str = sub(/^::/, "")
.gsub("::", "/")
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
Expand Down
43 changes: 43 additions & 0 deletions spec/site_maps/primitive/string_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
RSpec.describe SiteMaps::Primitive::String do
after do
described_class.remove_instance_variable(:@inflector)
rescue NameError
end

describe ".inflector" do
Expand All @@ -18,6 +19,17 @@
context "when ActiveSupport::Inflector is available" do
before do
stub_const("ActiveSupport::Inflector", Class.new)

if defined?(Dry::Inflector)
@before_dry_inflector = Dry::Inflector
Dry.send(:remove_const, :Inflector)
end
end

after do
if @before_dry_inflector
Dry.const_set(:Inflector, @before_dry_inflector)
end
end

it { is_expected.to eq(ActiveSupport::Inflector) }
Expand All @@ -26,12 +38,43 @@
context "when Dry::Inflector is available" do
before do
stub_const("Dry::Inflector", Class.new)

if defined?(ActiveSupport::Inflector)
@before_active_support_inflector = ActiveSupport::Inflector
ActiveSupport.send(:remove_const, :Inflector)
end
end

after do
if @before_active_support_inflector
ActiveSupport.const_set(:Inflector, @before_active_support_inflector)
end
end

it { is_expected.to be_a(Dry::Inflector) }
end

context "when no inflector is available" do
before do
if defined?(ActiveSupport::Inflector)
@before_active_support_inflector = ActiveSupport::Inflector
ActiveSupport.send(:remove_const, :Inflector)
end
if defined?(Dry::Inflector)
@before_dry_inflector = Dry::Inflector
Dry.send(:remove_const, :Inflector)
end
end

after do
if @before_active_support_inflector
ActiveSupport.const_set(:Inflector, @before_active_support_inflector)
end
if @before_dry_inflector
Dry.const_set(:Inflector, @before_dry_inflector)
end
end

it { is_expected.to be_nil }
end
end
Expand Down

0 comments on commit 6f7c8e7

Please sign in to comment.