Sha256: e48f3cb48bbec5c3d38327af81cb996e7454f01988e26c8661f7c8ee319b0d75

Contents?: true

Size: 709 Bytes

Versions: 2

Compression:

Stored size: 709 Bytes

Contents

# frozen_string_literal: true

module Trifle
  module Ruby
    class Resource
      include Mixins::Packer
      attr_accessor :key, :range, :at

      def initialize(key:, range:, at:)
        @key = key
        @range = range
        @at = at
      end

      def full_key
        [key, range, at.to_i].join(Trifle::Ruby.config.separator)
      end

      def increment(**values)
        packed = self.class.pack(hash: values)
        Trifle::Ruby.client.inc(key: full_key, **packed)
        {
          at => values
        }
      end

      def values
        {
          at => self.class.unpack(
            hash: Trifle::Ruby.client.get(key: full_key)
          )
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trifle-ruby-3.0.1 lib/trifle/ruby/resource.rb
trifle-ruby-3.0.0 lib/trifle/ruby/resource.rb