Skip to content

Commit 2263182

Browse files
authored
Add --library option as singular alias for --libraries (#91)
Syntactic sugar for syncing a single library with `bin/rails generate sync --library=phosphor`. Both options can be used together and will merge.
1 parent 5697522 commit 2263182

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ bundle add rails_icons
3535

3636
Install, choosing one of the supported libraries:
3737
```bash
38-
rails generate rails_icons:install --libraries=LIBRARY_NAME
38+
rails generate rails_icons:install --library=LIBRARY_NAME
3939
```
4040

4141
**Example**
4242
```bash
43-
rails generate rails_icons:install --libraries=heroicons
43+
rails generate rails_icons:install --library=heroicons
4444

4545
# Or multiple at once
4646
rails generate rails_icons:install --libraries=heroicons lucide
@@ -124,7 +124,7 @@ rails generate rails_icons:sync
124124

125125
To sync only a specific library, run:
126126
```bash
127-
rails generate rails_icons:sync --libraries=heroicons
127+
rails generate rails_icons:sync --library=heroicons
128128

129129
# Or multiple at once:
130130
rails generate rails_icons:sync --libraries=heroicons lucide

lib/generators/rails_icons/initializer_generator.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class InitializerGenerator < RailsIcons::BaseGenerator
88

99
desc "Create the Rails Icons initializer."
1010

11+
class_option :library, type: :string, desc: "Choose a library (#{RailsIcons.libraries.keys.join("/")})"
1112
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})"
1213
class_option :destination, type: :string, default: RailsIcons.configuration.icons_path, desc: "Specify icons folder"
1314
class_option :custom, type: :string, desc: "Name of the custom library"
@@ -94,7 +95,13 @@ def default_configuration_exists?
9495
File.readlines(INITIALIZER).any? { _1.match?(line) }
9596
end
9697

97-
def libraries = options[:libraries].map(&:downcase)
98+
def libraries
99+
[options[:library], *options[:libraries]]
100+
.compact_blank
101+
.map(&:downcase)
102+
.uniq
103+
.presence || []
104+
end
98105

99106
def validatable? = true
100107
end

lib/generators/rails_icons/sync_generator.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,19 @@ class SyncGenerator < RailsIcons::BaseGenerator
99

1010
desc "Sync the chosen icon libraries from their respective git repos."
1111

12+
class_option :library, type: :string, desc: "Choose a library (#{RailsIcons.libraries.keys.join("/")})"
1213
class_option :libraries, type: :array, default: [], desc: "Choose libraries (#{RailsIcons.libraries.keys.join("/")})"
1314

1415
def sync_icons = libraries.each { Sync::Engine.new(_1).sync }
1516

1617
private
1718

1819
def libraries
19-
options[:libraries].map(&:downcase).presence || synced_libraries
20+
[options[:library], *options[:libraries]]
21+
.compact_blank
22+
.map(&:downcase)
23+
.uniq
24+
.presence || synced_libraries
2025
end
2126

2227
def synced_libraries

0 commit comments

Comments
 (0)