Sha256: 08406d3125393816cbbdb8b9a647fd085b2779cb1d7f01d923366d0c00f64440
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 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 "xmlns: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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sketchily-4.0.0 | app/helpers/sketchily_helper.rb~ |
sketchily-1.5.0 | app/helpers/sketchily_helper.rb~ |