Module: Flag

Defined in:
lib/flag.rb

Defined Under Namespace

Classes: Feature, Members

Constant Summary collapse

FEATURES =
"_flag:features".freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.storeObject

Returns the value of attribute store.



110
111
112
# File 'lib/flag.rb', line 110

def store
  @store
end

Class Method Details

.enabledObject



118
119
120
# File 'lib/flag.rb', line 118

def enabled
  features.select { |k, v| k if v.on? }.keys
end

.featuresObject



127
128
129
130
131
132
133
134
135
# File 'lib/flag.rb', line 127

def features
  @_features ||= Hash.new { |h, k| h[k] = Feature.new(k) }

  self.store.call("HGETALL", FEATURES).each_slice(2) do |slice|
    @_features[slice.first.to_sym]
  end

  @_features
end

.flushObject



112
113
114
115
116
# File 'lib/flag.rb', line 112

def flush
  @_group = nil
  features.each { |_, f| f.reset }
  self.store.call("DEL", FEATURES)
end

.groupObject



123
# File 'lib/flag.rb', line 123

def group; @_group ||= Hash.new { |h, k| h[k] = lambda { |id| } } end

.groupsObject



125
# File 'lib/flag.rb', line 125

def groups; group.keys end