Skip to content

Commit d8715e2

Browse files
dipthThomas Dippeleelco
authored
automatically downcase library arguments for generators (#57)
* automatically downcase library arguments for generators To avoid issues where capitalized library name arguments causes failures on systems that employ a case-sensitive file system. Fixes #56 * Small refactor --------- Co-authored-by: Thomas Dippel <dipth@mjolnirm4.local> Co-authored-by: eelco <git@eelcoj.com>
1 parent 53ff1d6 commit d8715e2

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

lib/generators/rails_icons/initializer_generator.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ def insert_default_configuration
2020
return unless File.exist?(INITIALIZER)
2121
return if default_configuration_exists?
2222

23-
if options[:libraries].present?
23+
if libraries.present?
2424
default_configuration = <<~RB.indent(2)
25-
config.default_library = "#{options[:libraries].first}"
25+
config.default_library = "#{libraries.first}"
2626
# config.default_variant = "" # Set a default variant for all libraries
2727
RB
2828

@@ -76,7 +76,7 @@ def insert_custom_configuration
7676
def create_custom_directory = FileUtils.mkdir_p(File.join(options[:destination], options[:custom]))
7777

7878
def library_configuration
79-
options[:libraries].map { RailsIcons.libraries[_1.to_sym].initializer_config }.join("\n")
79+
libraries.map { RailsIcons.libraries[_1.to_sym].initializer_config }.join("\n")
8080
end
8181

8282
def custom_configuration
@@ -95,5 +95,7 @@ def default_configuration_exists?
9595

9696
File.readlines(INITIALIZER).any? { _1.match?(line) }
9797
end
98+
99+
def libraries = options[:libraries].map(&:downcase)
98100
end
99101
end

lib/generators/rails_icons/install_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ def sync_generator
2222

2323
private
2424

25-
def attributes = ["--libraries=#{options[:libraries].join(" ")}", "--destination=#{options[:destination]}"].join(" ")
25+
def attributes = ["--libraries=#{options[:libraries].map(&:downcase).join(" ")}", "--destination=#{options[:destination]}"].join(" ")
2626
end
2727
end

lib/generators/rails_icons/sync_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def sync_icons
1919
private
2020

2121
def libraries
22-
options[:libraries].presence || synced_libraries
22+
options[:libraries].map(&:downcase).presence || synced_libraries
2323
end
2424

2525
def synced_libraries

test/generators/initializer_generator_test.rb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ class InitializerGeneratorTest < Rails::Generators::TestCase
1414
run_generator
1515

1616
assert_file "config/initializers/rails_icons.rb" do |file|
17-
refute_match "Heroicons", file
18-
refute_match "Tabler", file
17+
refute_match "heroicons", file
18+
refute_match "tabler", file
1919
end
2020
end
2121

2222
test "generator creates the initializer with heroicons library" do
23-
run_generator %w[--libraries=heroicons]
23+
run_generator %w[--libraries=Heroicons]
2424

2525
assert_file "config/initializers/rails_icons.rb" do |file|
2626
assert_match "# Override Heroicon defaults", file
@@ -37,7 +37,7 @@ class InitializerGeneratorTest < Rails::Generators::TestCase
3737
end
3838
end
3939

40-
test "generator creates the initializer with Phosphor library" do
40+
test "generator creates the initializer with phosphor library" do
4141
run_generator %w[--libraries=phosphor]
4242

4343
assert_file "config/initializers/rails_icons.rb" do |file|
@@ -59,10 +59,9 @@ class InitializerGeneratorTest < Rails::Generators::TestCase
5959
run_generator ["--libraries", "lucide", "tabler"]
6060

6161
assert_file "config/initializers/rails_icons.rb" do |file|
62-
Rails.logger.debug "File content: #{file}"
6362
assert_match "# Override Lucide defaults", file
6463
assert_match "# Override Tabler defaults", file
65-
refute_match "Heroicons", file
64+
refute_match "heroicons", file
6665
end
6766
end
6867
end

0 commit comments

Comments
 (0)