Sha256: e301213b990af17aaf26d9c06f6e1f4a0fb98f5598052b498663d8b46c6c22e3

Contents?: true

Size: 612 Bytes

Versions: 5

Compression:

Stored size: 612 Bytes

Contents

class MockRedis
  module UtilityMethods
    private

    def with_thing_at(key, assertion, empty_thing_generator)
      send(assertion, key)
      data[key] ||= empty_thing_generator.call
      data_key_ref = data[key]
      ret = yield data[key]
      data[key] = data_key_ref if data[key].nil?
      primitive?(ret) ? ret.dup : ret
    ensure
      clean_up_empties_at(key)
    end

    def primitive?(value)
      value.is_a?(::Array) || value.is_a?(::Hash) || value.is_a?(::String)
    end

    def clean_up_empties_at(key)
      if data[key] && data[key].empty?
        del(key)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mock_redis-0.15.4 lib/mock_redis/utility_methods.rb
mock_redis-0.15.3 lib/mock_redis/utility_methods.rb
mock_redis-0.15.2 lib/mock_redis/utility_methods.rb
mock_redis-0.15.1 lib/mock_redis/utility_methods.rb
mock_redis-0.15.0 lib/mock_redis/utility_methods.rb