Class: Rolemodel::Optics::IconsGenerator

Inherits:
GeneratorBase
  • Object
show all
Defined in:
lib/generators/rolemodel/optics/icons/icons_generator.rb

Overview

Generates the icon helper and icon builders for the chosen icon library

Constant Summary collapse

BUILDER_DIR =
'rolemodel/optics'
SUPPORTED_LIBRARIES =
HashWithIndifferentAccess.new(
  material: 'filled, size, weight, emphasis, additional_classes, color, hover_text',
  phosphor: 'duotone, filled, size, weight, additional_classes, color, hover_text',
  tabler: 'filled, size, additional_classes, color, hover_text',
  feather: 'size, additional_classes, color, hover_text',
  lucide: 'size, additional_classes, color, hover_text',
  custom: 'filled, size, weight, emphasis, additional_classes, color, hover_text'
).freeze

Instance Method Summary collapse

Instance Method Details

#add_view_helperObject



27
28
29
30
31
32
# File 'lib/generators/rolemodel/optics/icons/icons_generator.rb', line 27

def add_view_helper
  @chosen_library = capture_user_selection
  @supported_properties = SUPPORTED_LIBRARIES.fetch(@chosen_library)

  template 'app/helpers/icon_helper.rb', force: true
end

#install_buildersObject



34
35
36
37
38
39
40
# File 'lib/generators/rolemodel/optics/icons/icons_generator.rb', line 34

def install_builders
  return unless options.install_builders?

  source_paths << File.expand_path(BUILDER_DIR, Rolemodel::GEM_LIB)
  copy_file 'icon_builder.rb', "lib/#{BUILDER_DIR}/icon_builder.rb", force: true
  copy_file "#{@chosen_library}_icon_builder.rb", "lib/#{BUILDER_DIR}/#{@chosen_library}_icon_builder.rb", force: true
end