diff --git a/gemfiles/rails_7_0.gemfile.lock b/gemfiles/rails_7_0.gemfile.lock index bc2d2de..16caa20 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.5.1) + rails_icons (1.6.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) @@ -115,7 +115,8 @@ GEM marcel (1.0.4) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) mutex_m (0.3.0) net-imap (0.5.9) date @@ -127,9 +128,8 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.27.0) parser (3.3.8.0) @@ -223,9 +223,9 @@ GEM timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) websocket-driver (0.8.0) base64 websocket-extensions (>= 0.1.0) diff --git a/gemfiles/rails_7_1.gemfile.lock b/gemfiles/rails_7_1.gemfile.lock index 751af36..079890d 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.5.1) + rails_icons (1.6.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) @@ -129,7 +129,8 @@ GEM net-smtp marcel (1.0.4) mini_mime (1.1.5) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) mutex_m (0.3.0) net-imap (0.5.9) date @@ -141,11 +142,8 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.27.0) parser (3.3.8.0) @@ -245,9 +243,9 @@ GEM timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) websocket-driver (0.8.0) base64 websocket-extensions (>= 0.1.0) diff --git a/gemfiles/rails_7_2.gemfile.lock b/gemfiles/rails_7_2.gemfile.lock index f7dfca4..fbcdc4a 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.5.1) + rails_icons (1.6.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) @@ -123,7 +123,8 @@ GEM net-smtp marcel (1.0.4) mini_mime (1.1.5) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) net-imap (0.5.9) date net-protocol @@ -134,11 +135,8 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.27.0) parser (3.3.8.0) @@ -238,9 +236,9 @@ GEM timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) useragent (0.16.11) websocket-driver (0.8.0) base64 diff --git a/gemfiles/rails_8_0.gemfile.lock b/gemfiles/rails_8_0.gemfile.lock index 2925c32..05dfca2 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.5.1) + rails_icons (1.6.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) @@ -121,7 +121,8 @@ GEM net-smtp marcel (1.0.4) mini_mime (1.1.5) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) net-imap (0.5.9) date net-protocol @@ -132,9 +133,8 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.27.0) parser (3.3.8.0) @@ -234,9 +234,9 @@ GEM timeout (0.4.3) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) uri (1.0.3) useragent (0.16.11) websocket-driver (0.8.0) diff --git a/gemfiles/rails_main.gemfile.lock b/gemfiles/rails_main.gemfile.lock index b6056d1..41fe260 100644 --- a/gemfiles/rails_main.gemfile.lock +++ b/gemfiles/rails_main.gemfile.lock @@ -102,7 +102,7 @@ GIT PATH remote: .. specs: - rails_icons (1.5.1) + rails_icons (1.6.0) nokogiri (~> 1.16, >= 1.16.4) rails (>= 7.0) @@ -153,7 +153,8 @@ GEM net-smtp marcel (1.0.4) mini_mime (1.1.5) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.27.0) net-imap (0.5.9) date net-protocol @@ -164,21 +165,8 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.4) - nokogiri (1.18.9-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.9-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.18.9-arm-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.9-arm-linux-musl) - racc (~> 1.4) - nokogiri (1.18.9-arm64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-musl) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.27.0) parser (3.3.8.0) @@ -257,9 +245,9 @@ GEM tsort (0.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) uri (1.0.3) useragent (0.16.11) websocket-driver (0.8.0) diff --git a/lib/generators/rails_icons/install_generator.rb b/lib/generators/rails_icons/install_generator.rb index 30b16d5..1a92954 100644 --- a/lib/generators/rails_icons/install_generator.rb +++ b/lib/generators/rails_icons/install_generator.rb @@ -8,6 +8,7 @@ class InstallGenerator < RailsIcons::BaseGenerator desc "Install Rails Icons with the chosen libraries. This creates the configuration initializer and will sync the icons." + class_option :library, type: :string, desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})" class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})" class_option :destination, type: :string, default: RailsIcons.configuration.icons_path, desc: "Specify destination folder for icons" class_option :skip_sync, type: :boolean, default: false @@ -17,14 +18,20 @@ def initializer_generator end def sync_generator - return if options[:skip_sync] || options[:libraries].blank? + return if options[:skip_sync] || libraries.blank? generate("rails_icons:sync", *attributes) end private - def attributes = ["--libraries=#{options[:libraries].map(&:downcase).join(" ")}", "--destination=#{options[:destination]}"].join(" ") + def attributes + ["--libraries=#{libraries.map(&:downcase).join(" ")}", "--destination=#{options[:destination]}"].join(" ") + end + + def libraries + [*options.libraries, options.library].compact_blank + end def validatable? = true end diff --git a/lib/rails_icons/base_generator.rb b/lib/rails_icons/base_generator.rb index cc33945..9a24f70 100644 --- a/lib/rails_icons/base_generator.rb +++ b/lib/rails_icons/base_generator.rb @@ -15,13 +15,17 @@ def initialize(*arguments) def validate! return if custom_library? - raise RailsIcons::LibraryNotFound.new("") if options.libraries.empty? + raise RailsIcons::LibraryNotFound.new("") if libraries.empty? raise RailsIcons::LibraryNotFound.new(invalid_libraries.join(", ")) if invalid_libraries.any? end def validatable? = false - def invalid_libraries = options.libraries.map(&:to_sym).map(&:downcase).reject { RailsIcons.libraries.key?(_1) } + def libraries + [*options.libraries, options.library].compact_blank + end + + def invalid_libraries = libraries.map(&:to_sym).map(&:downcase).reject { RailsIcons.libraries.key?(_1) } def custom_library? = options.custom.present?