Sha256: 6869cd908265f7b975038ae4ce11046c52b70052e0727d151441aff36ce28a78
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
require "flipper/adapters/sync/synchronizer" module Flipper # Adding a module include so we have some hooks for stuff down the road module Adapter def self.included(base) base.extend(ClassMethods) end module ClassMethods # Public: Default config for a feature's gate values. def default_config { boolean: nil, groups: Set.new, actors: Set.new, percentage_of_actors: nil, percentage_of_time: nil, } end end # Public: Get all features and gate values in one call. Defaults to one call # to features and another to get_multi. Feel free to override per adapter to # make this more efficient. def get_all instances = features.map { |key| Flipper::Feature.new(key, self) } get_multi(instances) end # Public: Get multiple features in one call. Defaults to one get per # feature. Feel free to override per adapter to make this more efficient and # reduce network calls. def get_multi(features) result = {} features.each do |feature| result[feature.key] = get(feature) end result end # Public: Ensure that adapter is in sync with source adapter provided. # # Returns result of Synchronizer#call. def import(source_adapter) Adapters::Sync::Synchronizer.new(self, source_adapter, raise: true).call end # Public: Default config for a feature's gate values. def default_config self.class.default_config end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flipper-0.15.0 | lib/flipper/adapter.rb |