Class: Middleman::Svg::Extension
- Inherits:
-
Extension
- Object
- Extension
- Middleman::Svg::Extension
- Defined in:
- lib/middleman/svg/extension.rb
Class Method Summary collapse
- .asset_path(source) ⇒ Object
- .extension_hint(filename) ⇒ Object
- .placeholder(filename) ⇒ Object
- .read_svg(filename) ⇒ Object
Instance Method Summary collapse
-
#initialize(app, options_hash = {}, &block) ⇒ Extension
constructor
A new instance of Extension.
- #inline_svg(filename, transform_params = {}) ⇒ Object
Constructor Details
#initialize(app, options_hash = {}, &block) ⇒ Extension
Returns a new instance of Extension.
8 9 10 11 12 |
# File 'lib/middleman/svg/extension.rb', line 8 def initialize( app, ={}, &block) super require 'active_support/core_ext/string' end |
Class Method Details
.asset_path(source) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/middleman/svg/extension.rb', line 40 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) ⇒ Object
61 62 63 |
# File 'lib/middleman/svg/extension.rb', line 61 def self.extension_hint(filename) filename.ends_with?(".svg") ? "" : "(Try adding .svg to your filename) " end |
.placeholder(filename) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/middleman/svg/extension.rb', line 50 def self.placeholder(filename) css_class = Middleman::Svg.configuration.svg_not_found_css_class = "'#{filename}' #{Middleman::Svg::Extension.extension_hint(filename)}" if css_class.nil? return "<svg><!-- SVG file not found: #{}--></svg>".html_safe else return "<svg class='#{css_class}'><!-- SVG file not found: #{}--></svg>".html_safe end end |
.read_svg(filename) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/middleman/svg/extension.rb', line 32 def self.read_svg(filename) if Middleman::Svg::IOResource === filename Middleman::Svg::IOResource.read filename else Middleman::Svg::Extension.asset_path(filename) end end |
Instance Method Details
#inline_svg(filename, transform_params = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/middleman/svg/extension.rb', line 14 def inline_svg(filename, transform_params={}) begin svg_file = Middleman::Svg::Extension.read_svg(filename) rescue Middleman::Svg::AssetFile::FileNotFound return Middleman::Svg::Extension.placeholder(filename) unless transform_params[:fallback].present? if transform_params[:fallback].present? begin svg_file = Middleman::Svg::Extension.read_svg(transform_params[:fallback]) rescue Middleman::Svg::AssetFile::FileNotFound Middleman::Svg::Extension.placeholder(filename) end end end Middleman::Svg::TransformPipeline.generate_html_from(svg_file, transform_params).html_safe end |