Sha256: 147006c7f412f48e66d9b451bd38200ce678cf3b4b9a06adeb4d90bf09b494c7

Contents?: true

Size: 1.05 KB

Versions: 8

Compression:

Stored size: 1.05 KB

Contents

require "voltron/svg/version"
require "voltron/svg/tag"
require "voltron/config/svg"
require "mini_magick"
require "sass/rails"

module Voltron
  module Svg

    module SassHelpers
      def svg_icon(source, options={})
        tag = Voltron::Svg::Tag.new(source.value, { extension: :svg }.merge(map_options(options)))

        ::Sass::Script::String.new "url(\"#{tag.image_path}\");\nbackground-image: url(\"#{tag.svg_path}\"), linear-gradient(transparent, transparent);\nbackground-size: #{tag.width}px #{tag.height}px"
      end

      def map_options(options={})
        ::Sass::Util.map_hash(options) do |key, value|
          [key.to_sym, (value.respond_to?(:representation) ? value.representation : (value.respond_to?(:value) ? value.value : value))]
        end
      end

      ::Sass::Script::Functions.declare :svg_icon, [:source], var_kwargs: true
    end

    module ViewHelpers
      def svg_tag(source, options={})
        tag = Voltron::Svg::Tag.new(source, options)
        tag.html
      end
    end

  end
end

require "voltron/svg/engine" if defined?(Rails)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
voltron-svg-0.1.4 lib/voltron/svg.rb
voltron-svg-0.1.9 lib/voltron/svg.rb
voltron-svg-0.1.2 lib/voltron/svg.rb
voltron-svg-0.1.3 lib/voltron/svg.rb
voltron-svg-0.1.5 lib/voltron/svg.rb
voltron-svg-0.1.7 lib/voltron/svg.rb
voltron-svg-0.1.6 lib/voltron/svg.rb
voltron-svg-0.1.8 lib/voltron/svg.rb