Sha256: bc7bf7f8ea52f81c27ca548fdc5f9596deccddfff85dfe7e54bf3276de0385e4
Contents?: true
Size: 1.79 KB
Versions: 2
Compression:
Stored size: 1.79 KB
Contents
require "inline_svg/version" require "inline_svg/action_view/helpers" require "inline_svg/asset_file" require "inline_svg/finds_asset_paths" require "inline_svg/transform_pipeline" require "inline_svg/railtie" if defined?(Rails) require 'active_support/core_ext/string' require 'nokogiri' module InlineSvg class Configuration class Invalid < ArgumentError; end attr_reader :asset_finder, :custom_transformations def initialize @custom_transformations = {} end def asset_finder=(finder) if finder.respond_to?(:find_asset) @asset_finder = finder else raise InlineSvg::Configuration::Invalid.new("Asset Finder should implement the #find_asset method") end asset_finder end def add_custom_transformation(options) if incompatible_transformation?(options.fetch(:transform)) raise InlineSvg::Configuration::Invalid.new("#{options.fetch(:transform)} should implement the .create_with_value and #transform methods") end @custom_transformations.merge!(Hash[ *[options.fetch(:attribute, :no_attribute), options.fetch(:transform, no_transform)] ]) end private def incompatible_transformation?(klass) !klass.is_a?(Class) || !klass.respond_to?(:create_with_value) || !klass.instance_methods.include?(:transform) end def no_transform InlineSvg::TransformPipeline::Transformations::NullTransformation end end @configuration = InlineSvg::Configuration.new class << self attr_reader :configuration def configure if block_given? yield configuration else raise InlineSvg::Configuration::Invalid.new('Please set configuration options with a block') end end def reset_configuration! @configuration = InlineSvg::Configuration.new end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
inline_svg-0.6.1 | lib/inline_svg.rb |
inline_svg-0.6.0 | lib/inline_svg.rb |