class Jekyll::FontAwesome::Svg::FontAwesomeIcon

Public Class Methods

new(icon) click to toggle source
# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 5
def initialize(icon)
  @icon = icon
end

Public Instance Methods

mapper(type) click to toggle source
# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 9
def mapper(type)
  {
      "fas" => "solid",
      "fab" => "brands",
      "far" => "regular"
  }[type]
end
to_filename() click to toggle source

absolute path to file

# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 35
def to_filename
  base_directory = __dir__ + "/assets/fa_svgs/"
  base_directory + to_folder_name + "/" + to_icon_name + ".svg"
end
to_folder_name() click to toggle source

solid / brands / regular

# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 25
def to_folder_name
  mapper(to_font_awesome_type)
end
to_font_awesome_type() click to toggle source

fab / far / fas

# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 30
def to_font_awesome_type
  @icon.split('.').first.strip
end
to_icon_name() click to toggle source

fa-dev

# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 18
def to_icon_name
  icon = @icon.split('.').last.split('-')
  icon.shift
  icon.join('-')
end
to_svg_html() click to toggle source
# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 40
def to_svg_html
  file = File.read(to_filename)
  path_data = /^.*path d="(.*)" ?\/>.*$/.match(file).captures.first
  viewBox = /^.*viewBox="([^"]*)".*$/.match(file).captures.first
  "<symbol id='#{@icon}' viewBox='#{viewBox}'>
    <title>#{to_icon_name}</title>
    <path class='path1' d='#{path_data}'></path>
</symbol>
"
end
value() click to toggle source
# File lib/jekyll/fontawesome/svg/fa-icon.rb, line 51
def value
  @icon
end