Class: Icons::SpriteIcon

Inherits:
Object
  • Object
show all
Includes:
Icon::Configurable
Defined in:
lib/icons/sprite_icon.rb

Instance Method Summary collapse

Constructor Details

#initialize(name:, library:, arguments:, variant: nil, sprite_location: nil, config: Icons.configuration) ⇒ SpriteIcon

Returns a new instance of SpriteIcon.

Parameters:

  • name (String)

    The icon name

  • library (String, Symbol)

    The icon library

  • variant (String, Symbol, nil) (defaults to: nil)

    The icon variant (optional)

  • arguments (Hash)

    Additional attributes including class, data, stroke_width, etc.

  • sprite_location (String, nil) (defaults to: nil)

    Override URL for the sprite file (optional)

  • config (Configuration) (defaults to: Icons.configuration)

    The configuration object (defaults to Icons.configuration)



18
19
20
21
22
23
24
25
26
# File 'lib/icons/sprite_icon.rb', line 18

def initialize(name:, library:, arguments:, variant: nil, sprite_location: nil, config: Icons.configuration)
  @config = config

  @name = name
  @library = library.to_sym
  @variant = (variant || set_variant)&.to_sym
  @arguments = arguments
  @sprite_location = sprite_location || @config.default_sprite_location
end

Instance Method Details

#svgString

Returns the SVG markup referencing the icon from a sprite sheet

Returns:

  • (String)

    The SVG markup using a ‘<use>` tag referencing the sprite symbol

Raises:



34
35
36
37
38
39
40
# File 'lib/icons/sprite_icon.rb', line 34

def svg
  if @config.validate_sprite_icons
    raise Icons::IconNotFound, error_message unless reference.exists?
  end

  sprite_svg
end