class Middleman::Svg::SvgExtension

Public Class Methods

asset_path(source) click to toggle source
# File lib/middleman-svg/extension.rb, line 50
def self.asset_path(source)
  root = Middleman::Application.root
  source_path = File.join(root, 'source')
  if File.exists?(File.join(source_path, 'images', source))
    File.read(File.join(source_path, 'images', source))
  elsif File.exists?(File.join(source_path, 'fonts/svg', source))
    File.read(File.join(source_path, 'fonts/svg', source))
  end
end
extension_hint(filename) click to toggle source
# File lib/middleman-svg/extension.rb, line 71
def self.extension_hint(filename)
  filename.ends_with?(".svg") ? "" : "(Try adding .svg to your filename) "
end
new(app, options_hash={}, &block) click to toggle source
Calls superclass method
# File lib/middleman-svg/extension.rb, line 16
def initialize(app, options_hash={}, &block)
  super

  require 'active_support/core_ext/string'
end
placeholder(filename) click to toggle source
# File lib/middleman-svg/extension.rb, line 60
def self.placeholder(filename)
  css_class = Middleman::Svg.configuration.svg_not_found_css_class
  not_found_message = "'#{filename}' #{Middleman::Svg::SvgExtension.extension_hint(filename)}"

  if css_class.nil?
    return "<svg><!-- SVG file not found: #{not_found_message}--></svg>".html_safe
  else
    return "<svg class='#{css_class}'><!-- SVG file not found: #{not_found_message}--></svg>".html_safe
  end
end
read_svg(filename) click to toggle source
# File lib/middleman-svg/extension.rb, line 40
def self.read_svg(filename)
  if Middleman::Svg::IOResource === filename
    Middleman::Svg::IOResource.read filename
  elsif Middleman::Svg::URIResource === filename
    Middleman::Svg::URIResource.read filename
  else
    Middleman::Svg::SvgExtension.asset_path(filename)
  end
end

Public Instance Methods

inline_svg(filename, transform_params={}) click to toggle source
# File lib/middleman-svg/extension.rb, line 22
def inline_svg(filename, transform_params={})
  begin
    svg_file = Middleman::Svg::SvgExtension.read_svg(filename)
  rescue Middleman::Svg::AssetFile::FileNotFound
    return Middleman::Svg::SvgExtension.placeholder(filename) unless transform_params[:fallback].present?

    if transform_params[:fallback].present?
      begin
        svg_file = Middleman::Svg::SvgExtension.read_svg(transform_params[:fallback])
      rescue Middleman::Svg::AssetFile::FileNotFound
        Middleman::Svg::SvgExtension.placeholder(filename)
      end
    end
  end

  Middleman::Svg::TransformPipeline.generate_html_from(svg_file, transform_params).html_safe
end