Class: RailsIcons::Icon

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_icons/icon.rb,
lib/rails_icons/icon/file_path.rb,
lib/rails_icons/icon/attributes.rb

Defined Under Namespace

Classes: Attributes, FilePath

Instance Method Summary collapse

Constructor Details

#initialize(name:, library:, arguments:, variant: nil, config: RailsIcons.configuration) ⇒ Icon

Returns a new instance of Icon.



5
6
7
8
9
10
11
12
# File 'lib/rails_icons/icon.rb', line 5

def initialize(name:, library:, arguments:, variant: nil, config: RailsIcons.configuration)
  @config = config # set first, config is used during initialization

  @name = name
  @library = library.to_s.inquiry
  @variant = (variant || set_variant).to_s
  @arguments = arguments
end

Instance Method Details

#svgObject



14
15
16
17
18
19
20
21
22
# File 'lib/rails_icons/icon.rb', line 14

def svg
  raise RailsIcons::IconNotFound, error_message unless File.exist?(file_path)

  Nokogiri::HTML::DocumentFragment.parse(File.read(file_path))
    .at_css("svg")
    .tap { |svg| attach_attributes(to: svg) }
    .to_html
    .html_safe
end