Sha256: a0f91fa4c6e0aa6c1c0f31f224eef04580213b1940bfaa0b677858a56591a79a

Contents?: true

Size: 660 Bytes

Versions: 15

Compression:

Stored size: 660 Bytes

Contents

class MockRedis
  module UtilityMethods
    private

    def with_thing_at(key, assertion, empty_thing_generator)
      begin
        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
    end

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

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

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
mock_redis-0.14.1 lib/mock_redis/utility_methods.rb
mock_redis-0.14.0 lib/mock_redis/utility_methods.rb
mock_redis-0.13.2 lib/mock_redis/utility_methods.rb
mock_redis-0.13.1 lib/mock_redis/utility_methods.rb
mock_redis-0.13.0 lib/mock_redis/utility_methods.rb
mock_redis-0.12.1 lib/mock_redis/utility_methods.rb
mock_redis-0.12.0 lib/mock_redis/utility_methods.rb
mock_redis-0.11.0 lib/mock_redis/utility_methods.rb
mock_redis-0.10.0 lib/mock_redis/utility_methods.rb
mock_redis-0.9.0 lib/mock_redis/utility_methods.rb
mock_redis-0.8.2 lib/mock_redis/utility_methods.rb
mock_redis-0.8.1 lib/mock_redis/utility_methods.rb
mock_redis-0.8.0 lib/mock_redis/utility_methods.rb
mock_redis-0.7.0 lib/mock_redis/utility_methods.rb
mock_redis-0.6.6 lib/mock_redis/utility_methods.rb