Sha256: b19b02f94f5e1c12bb12745f8b729ed345c138403b40befd34bec52e4b734f29

Contents?: true

Size: 830 Bytes

Versions: 1

Compression:

Stored size: 830 Bytes

Contents

module FFI
  module HiredisVip
    class Touch
      def initialize(client)
        @client = client
      end

      def touch(*keys)
        reply = nil
        keys = keys.flatten
        number_of_touches = keys.size
        command = "TOUCH#{' %b' * number_of_touches}"
        command_args = []
        keys.each do |key|
          command_args << :string << key << :size_t << key.size
        end

        synchronize do |connection|
          reply = @client.execute_command(connection, command, *command_args)
        end

        return nil if reply.nil? || reply.null?

        case reply[:type]
        when :REDIS_REPLY_INTEGER
          reply[:integer]
        else
          0
        end
      end

      def supports_touch?
        true
      end

    end # class Touch
  end # module HiredisVip
end # module FFI

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ffi-hiredis_vip-0.1.0.pre2 lib/ffi/hiredis_vip/touch.rb