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:

  • (defaults to: Icons.configuration)

    The configuration object (defaults to Icons.configuration)

  • (defaults to: nil)

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

  • (defaults to: nil)

    The icon library to use when icons are provided

  • (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:

  • 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 xmlns=\"http://www.w3.org/2000/svg\" style=\"display: none;\">\n      \#{symbols.join(\"\\n  \")}\n    </svg>\n  SVG\nend\n"