Sha256: 6dc710a5f6835b43028211986ce408a470a8f24406668a75dbdb430f18d1b6ce

Contents?: true

Size: 571 Bytes

Versions: 4

Compression:

Stored size: 571 Bytes

Contents

require 'set'

module Flipper
  module Adapters
    class Memory
      def initialize(source = nil)
        @source = source || {}
      end

      def read(key)
        @source[key]
      end

      def write(key, value)
        @source[key] = value
      end

      def delete(key)
        @source.delete(key)
      end

      def set_add(key, value)
        set_members(key).add(value)
      end

      def set_delete(key, value)
        set_members(key).delete(value)
      end

      def set_members(key)
        @source[key] ||= Set.new
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
flipper-0.2.1 lib/flipper/adapters/memory.rb
flipper-0.2.0 lib/flipper/adapters/memory.rb
flipper-0.1.1 lib/flipper/adapters/memory.rb
flipper-0.1.0 lib/flipper/adapters/memory.rb