Sha256: 1409fd03612f5ac3a541f3974da34593cb805831ed5b1f18d8e8d872ab5a46e0
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
module SketchilyHelper def sketchily_show(uri, options = {}) if options[:bkgd_color] || options[:bkgd_file] require 'nokogiri' doc = Nokogiri::XML(Base64.decode64(uri)) {|xml| xml.noblanks} if options[:bkgd_file] data_uri = "data:image/svg+xml;base64,#{Base64.strict_encode64(open(options[:bkgd_file]).read)}" bkgd_file_node = Nokogiri::XML::Node.new 'g', doc Nokogiri::XML::Builder.with(bkgd_file_node) do |xml| xml.title 'Background Image Layer' xml.image :id => 'background_image', :width => '100%', :height => '100%', :preserveAspectRatio => 'xMinYMin', 'xlink:href' => data_uri end doc.root.add_namespace "xlink", "http://www.w3.org/1999/xlink" doc.at('g').before(bkgd_file_node) end if options[:bkgd_color] bkgd_color_node = Nokogiri::XML::Node.new 'g', doc Nokogiri::XML::Builder.with(bkgd_color_node) do |xml| xml.title 'Background Color Layer' xml.rect :id => 'background_color', :width => '100%', :height => '100%', :fill => "##{options[:bkgd_color]}" end doc.at('g').before(bkgd_color_node) end uri = Base64.strict_encode64(doc.to_xml) end "<img src='data:image/svg+xml;base64,#{uri}' #{"width='#{options[:width]}'" if options[:width]} #{"height='#{options[:height]}'" if options[:height]}/>".html_safe end def svg_show(uri, options = {}) sketchily_show(uri, options) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sketchily-4.0.1 | app/helpers/sketchily_helper.rb~ |
sketchily-4.0.0 | app/helpers/sketchily_helper.rb |
sketchily-1.5.0 | app/helpers/sketchily_helper.rb |