Sha256: 7d6049206ea33f5b34a054b6a12d3fdf4cff585f5fba65f54a12b286a421860b

Contents?: true

Size: 713 Bytes

Versions: 49

Compression:

Stored size: 713 Bytes

Contents

module Paperclip
  class AdapterRegistry
    class NoHandlerError < Paperclip::Error; end

    attr_reader :registered_handlers

    def initialize
      @registered_handlers = []
    end

    def register(handler_class, &block)
      @registered_handlers << [block, handler_class]
    end

    def handler_for(target)
      @registered_handlers.each do |tester, handler|
        return handler if tester.call(target)
      end
      raise NoHandlerError.new("No handler found for #{target.inspect}")
    end

    def registered?(target)
      @registered_handlers.any? do |tester, handler|
        handler === target
      end
    end

    def for(target)
      handler_for(target).new(target)
    end
  end
end

Version data entries

49 entries across 47 versions & 7 rubygems

Version Path
kt-paperclip-4.4.0 lib/paperclip/io_adapters/registry.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paperclip-5.1.0/lib/paperclip/io_adapters/registry.rb
paperclip-5.1.0 lib/paperclip/io_adapters/registry.rb
paperclip-5.0.0 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.7 lib/paperclip/io_adapters/registry.rb
paperclip_jk-5.0.0.beta2 lib/paperclip/io_adapters/registry.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/paperclip-4.3.6/lib/paperclip/io_adapters/registry.rb
paperclip-5.0.0.beta2 lib/paperclip/io_adapters/registry.rb
paperclip-5.0.0.beta1 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.6 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.5 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.4 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.3 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.2 lib/paperclip/io_adapters/registry.rb
paperclip-4.3.1 lib/paperclip/io_adapters/registry.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/registry.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/registry.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.3/lib/paperclip/io_adapters/registry.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.2/lib/paperclip/io_adapters/registry.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/registry.rb