Module: Flipper

Defined in:
lib/flipper.rb,
lib/flipper/dsl.rb,
lib/flipper/gate.rb,
lib/flipper/type.rb,
lib/flipper/errors.rb,
lib/flipper/toggle.rb,
lib/flipper/adapter.rb,
lib/flipper/feature.rb,
lib/flipper/version.rb,
lib/flipper/registry.rb,
lib/flipper/gates/actor.rb,
lib/flipper/gates/group.rb,
lib/flipper/toggles/set.rb,
lib/flipper/types/actor.rb,
lib/flipper/types/group.rb,
lib/flipper/gates/boolean.rb,
lib/flipper/toggles/value.rb,
lib/flipper/types/boolean.rb,
lib/flipper/adapters/memory.rb,
lib/flipper/toggles/boolean.rb,
lib/flipper/types/percentage.rb,
lib/flipper/adapters/memoized.rb,
lib/flipper/middleware/local_cache.rb,
lib/flipper/gates/percentage_of_actors.rb,
lib/flipper/gates/percentage_of_random.rb,
lib/flipper/types/percentage_of_actors.rb,
lib/flipper/types/percentage_of_random.rb

Defined Under Namespace

Modules: Adapters, Gates, Middleware, Toggles, Types Classes: Adapter, DSL, DuplicateGroup, Error, Feature, Gate, GateNotFound, Registry, Toggle, Type

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.group(name) ⇒ Object



30
31
32
# File 'lib/flipper.rb', line 30

def self.group(name)
  groups.get(name)
end

.groupsObject



14
15
16
# File 'lib/flipper.rb', line 14

def self.groups
  @groups ||= Registry.new
end

.groups=(registry) ⇒ Object



18
19
20
# File 'lib/flipper.rb', line 18

def self.groups=(registry)
  @groups = registry
end

.new(*args) ⇒ Object



10
11
12
# File 'lib/flipper.rb', line 10

def self.new(*args)
  DSL.new(*args)
end

.register(name, &block) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/flipper.rb', line 22

def self.register(name, &block)
  group = Types::Group.new(name, &block)
  groups.add(group.name, group)
  group
rescue Registry::DuplicateKey
  raise DuplicateGroup, %Q{Group named "#{name}" is already registered}
end