Sha256: c81e05205a230589c30f1619aa2b9a73bd5a7ab1df4735f6595d4c4b898c2e6d

Contents?: true

Size: 1.22 KB

Versions: 28

Compression:

Stored size: 1.22 KB

Contents

require 'concurrent'

module SplitIoClient
  module Cache
    module Repositories
      class RedisFlagSetsRepository < Repository

        def initialize(config)
          super(config)
          @adapter = SplitIoClient::Cache::Adapters::RedisAdapter.new(@config.redis_url)
        end

        def flag_set_exist?(flag_set)
          @adapter.exists?(namespace_key(".flagSet.#{flag_set}"))
        end

        def get_flag_sets(flag_sets)
          result = @adapter.redis.pipelined do |pipeline|
            flag_sets.each do |flag_set|
               pipeline.smembers(namespace_key(".flagSet.#{flag_set}"))
            end
          end
          to_return = Array.new
          result.each do |flag_set|
            flag_set.each { |feature_flag_name| to_return.push(feature_flag_name.to_s)}
          end
          to_return.uniq
        end

        def add_flag_set(flag_set)
          # not implemented
        end

        def remove_flag_set(flag_set)
          # not implemented
        end

        def add_feature_flag_to_flag_set(flag_set, feature_flag)
          # not implemented
        end

        def remove_feature_flag_from_flag_set(flag_set, feature_flag)
          # not implemented
        end

      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
splitclient-rb-8.5.0-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.5.0 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.5.0.pre.rc1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.5.0.pre.rc1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.1.pre.rc1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.1.pre.rc1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0.pre.rc1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0.pre.rc1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0.rc.1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.4.0.rc.1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.2.pre.rc2-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.2.pre.rc2 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.2.pre.rc1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.2.pre.rc1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.1.pre.rc1-java lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb
splitclient-rb-8.3.1.pre.rc1 lib/splitclient-rb/cache/repositories/flag_sets/redis_repository.rb