Class: RailsIcons::Sync::ProcessVariants

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/rails_icons/sync/process_variants.rb

Instance Method Summary collapse

Constructor Details

#initialize(temp_directory, name, library) ⇒ ProcessVariants

Returns a new instance of ProcessVariants.



11
12
13
# File 'lib/rails_icons/sync/process_variants.rb', line 11

def initialize(temp_directory, name, library)
  @temp_directory, @name, @library = temp_directory, name, library
end

Instance Method Details

#processObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rails_icons/sync/process_variants.rb', line 15

def process
  original_variants = Dir.children(@temp_directory)
  excluded_variants = RailsIcons.configuration.libraries.dig(@name.to_sym)&.exclude_variants || []

  @library[:variants].each do |variant_name, variant_source_path|
    next if excluded_variants.include?(variant_name)

    source = File.join(@temp_directory, variant_source_path)
    destination = File.join(@temp_directory, variant_name.to_s)

    original_variants.delete(variant_name.to_s)

    raise "[Rails Icons] Failed to find the icons directory: '#{source}'" unless Dir.exist?(source)

    move_icons(source, destination)

    apply_transformations_to(destination)
  end

  remove_files_and_folders_for(original_variants)
  remove_previously_downloaded(excluded_variants)

  say "[Rails Icons] Icon variants processed successfully"
end