Sha256: 337dce4abe8c3a1adba18035fcee9c8c8173c270fcade4beccd6854ce6500966

Contents?: true

Size: 555 Bytes

Versions: 7

Compression:

Stored size: 555 Bytes

Contents

module Zemanta
  class Fetcher
    class Cache
      class Key
        def initialize(value)
          @value = value
        end

        def to_s
          if @value.is_a?(String)
            digest(@value)
          elsif @value.is_a?(Hash)
            digest(@value.sort.to_s)
          else
            raise "You are trying to use #{@value.class} as cache key. Only Strings and Hashes are supported."
          end
        end

        private

        def digest(value)
          Digest::MD5.hexdigest(value)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
zemanta_client-0.0.9 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.8 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.7 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.6 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.5 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.4 lib/zemanta/fetcher/cache/key.rb
zemanta_client-0.0.3 lib/zemanta/fetcher/cache/key.rb