Class: Icons::Sprite

Inherits:
Object
  • Object
show all
Defined in:
lib/icons/sprite.rb,
lib/icons/sprite/reference.rb

Defined Under Namespace

Classes: Reference

Instance Method Summary collapse

Constructor Details

#initialize(config: Icons.configuration, icons: nil, library: nil, variant: nil) ⇒ Sprite

Returns a new instance of Sprite.

Parameters:

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

    The configuration object (defaults to Icons.configuration)

  • icons (Array<String>, nil) (defaults to: nil)

    Optional list of icon names to include (defaults to configured icons)

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

    The icon library to use when icons are provided

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

    The icon variant to use when icons are provided



10
11
12
13
14
15
# File 'lib/icons/sprite.rb', line 10

def initialize(config: Icons.configuration, icons: nil, library: nil, variant: nil)
  @config = config
  @icons = icons
  @library = library
  @variant = variant
end

Instance Method Details

#svgString

Returns the combined SVG sprite markup containing all icon symbols

Returns:

  • (String)

    The SVG markup with ‘<symbol>` elements wrapped in a hidden `<svg>`



21
22
23
24
25
26
27
28
29
# File 'lib/icons/sprite.rb', line 21

def svg
  symbols = references.filter_map { |reference| symbol_from(reference) }

  <<~SVG
    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
      #{symbols.join("\n  ")}
    </svg>
  SVG
end