diff --git a/app/helpers/rails_icons/icon_helper.rb b/app/helpers/rails_icons/icon_helper.rb deleted file mode 100644 index 0440669..0000000 --- a/app/helpers/rails_icons/icon_helper.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -module RailsIcons - module IconHelper - def icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) - RailsIcons::Icon.new( - name: name, - library: from || library, - variant: variant, - arguments: arguments - ).svg - end - - def encoded_icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) - svg_content = RailsIcons::Icon.new( - name: name, - library: from || library, - variant: variant, - arguments: arguments - ).svg - - "data:image/svg+xml;base64,#{Base64.strict_encode64(svg_content)}" - end - end -end diff --git a/gemfiles/rails_7_0.gemfile.lock b/gemfiles/rails_7_0.gemfile.lock index 5e36d80..4d77998 100644 --- a/gemfiles/rails_7_0.gemfile.lock +++ b/gemfiles/rails_7_0.gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - rails_icons (1.4.0) + rails_icons (1.5.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) diff --git a/gemfiles/rails_7_1.gemfile.lock b/gemfiles/rails_7_1.gemfile.lock index a1b9c6d..a53260b 100644 --- a/gemfiles/rails_7_1.gemfile.lock +++ b/gemfiles/rails_7_1.gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - rails_icons (1.4.0) + rails_icons (1.5.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) diff --git a/gemfiles/rails_7_2.gemfile.lock b/gemfiles/rails_7_2.gemfile.lock index 0e4f73d..8d2bf10 100644 --- a/gemfiles/rails_7_2.gemfile.lock +++ b/gemfiles/rails_7_2.gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - rails_icons (1.4.0) + rails_icons (1.5.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) diff --git a/gemfiles/rails_8_0.gemfile.lock b/gemfiles/rails_8_0.gemfile.lock index 6c903c0..c0df7d4 100644 --- a/gemfiles/rails_8_0.gemfile.lock +++ b/gemfiles/rails_8_0.gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - rails_icons (1.4.0) + rails_icons (1.5.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) diff --git a/gemfiles/rails_main.gemfile.lock b/gemfiles/rails_main.gemfile.lock index 0698c6b..6faa24c 100644 --- a/gemfiles/rails_main.gemfile.lock +++ b/gemfiles/rails_main.gemfile.lock @@ -102,7 +102,7 @@ GIT PATH remote: .. specs: - rails_icons (1.4.0) + rails_icons (1.5.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) diff --git a/lib/rails_icons.rb b/lib/rails_icons.rb index 115a521..552bbaf 100644 --- a/lib/rails_icons.rb +++ b/lib/rails_icons.rb @@ -5,7 +5,7 @@ require_relative "rails_icons/configuration" require_relative "rails_icons/engine" require_relative "rails_icons/errors" -require_relative "rails_icons/railtie" +# require_relative "rails_icons/railtie" require_relative "rails_icons/icon" module RailsIcons diff --git a/lib/rails_icons/engine.rb b/lib/rails_icons/engine.rb index 232e2a6..37978d2 100644 --- a/lib/rails_icons/engine.rb +++ b/lib/rails_icons/engine.rb @@ -1,7 +1,15 @@ # frozen_string_literal: true +require "rails_icons/helpers/icon_helper" + module RailsIcons class Engine < ::Rails::Engine isolate_namespace RailsIcons + + initializer "rails_icons.helpers" do + ActiveSupport.on_load(:action_view) do + include RailsIcons::Helpers::IconHelper + end + end end end diff --git a/lib/rails_icons/helpers/icon_helper.rb b/lib/rails_icons/helpers/icon_helper.rb new file mode 100644 index 0000000..0cea0f4 --- /dev/null +++ b/lib/rails_icons/helpers/icon_helper.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module RailsIcons + module Helpers + module IconHelper + def icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) + RailsIcons::Icon.new( + name: name, + library: from || library, + variant: variant, + arguments: arguments + ).svg + end + + def encoded_icon(name, library: RailsIcons.configuration.default_library, from: library, variant: nil, **arguments) + svg_content = RailsIcons::Icon.new( + name: name, + library: from || library, + variant: variant, + arguments: arguments + ).svg + + "data:image/svg+xml;base64,#{Base64.strict_encode64(svg_content)}" + end + end + end +end diff --git a/lib/rails_icons/railtie.rb b/lib/rails_icons/railtie.rb deleted file mode 100644 index 3c6f61a..0000000 --- a/lib/rails_icons/railtie.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -module RailsIcons - class Railtie < Rails::Railtie - initializer "rails_icons.helpers" do - ActiveSupport.on_load(:action_view) do - include RailsIcons::IconHelper - end - end - end -end diff --git a/test/dummy/tmp/local_secret.txt b/test/dummy/tmp/local_secret.txt new file mode 100644 index 0000000..0bff2dd --- /dev/null +++ b/test/dummy/tmp/local_secret.txt @@ -0,0 +1 @@ +009546a8fedf9834cd724cd7e230efba87ccd0d0820891a165e19a76b42352ef0b5d498c22acd2c1293762034c3e540b156f981384520bb32e10c3b9f09d43f1 \ No newline at end of file diff --git a/test/rails_icons/icon_helper_test.rb b/test/rails_icons/icon_helper_test.rb new file mode 100644 index 0000000..0a4db22 --- /dev/null +++ b/test/rails_icons/icon_helper_test.rb @@ -0,0 +1,13 @@ +require "test_helper" + +class IconHelperTest < ActiveSupport::TestCase + test "icon helper constant is defined" do + assert defined?(RailsIcons::Helpers::IconHelper) + end + + test "icon helper can be included in classes" do + test_class = Class.new { include RailsIcons::Helpers::IconHelper } + + assert test_class.new.respond_to?(:icon) + end +end diff --git a/test/rails_icons/icon_helper_view_test.rb b/test/rails_icons/icon_helper_view_test.rb new file mode 100644 index 0000000..cf134ef --- /dev/null +++ b/test/rails_icons/icon_helper_view_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class IconHelperViewTest < ActionView::TestCase + test "icon helper is automatically available in views" do + assert ActionView::Base.instance_methods.include?(:icon), "icon method should be included in ActionView::Base" + end +end