Sha256: a209c9bfcf397ee9cdb3e93ff54d79e580e2999da3c1f47d35c949340ff568cf

Contents?: true

Size: 534 Bytes

Versions: 14

Compression:

Stored size: 534 Bytes

Contents

module Paperclip
  class DataUriAdapter < StringioAdapter
    def self.register
      Paperclip.io_adapters.register self do |target|
        String === target && target =~ REGEXP
      end
    end

    REGEXP = /\Adata:([-\w]+\/[-\w\+\.]+)?;base64,(.*)/m.freeze

    def initialize(target_uri, options = {})
      super(extract_target(target_uri), options)
    end

    private

    def extract_target(uri)
      data_uri_parts = uri.match(REGEXP) || []
      StringIO.new(Base64.decode64(data_uri_parts[2] || ""))
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
kt-paperclip-7.2.2 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.2.1 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.2.0 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.4.2 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.1.1 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.1.0 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.0.1 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-7.0.0 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.4.1 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.4.0 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.3.0 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.2.2 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.2.1 lib/paperclip/io_adapters/data_uri_adapter.rb
kt-paperclip-6.2.0 lib/paperclip/io_adapters/data_uri_adapter.rb