class FeatureRelease::Storage

Public Class Methods

new(options={}) click to toggle source
# File lib/feature_release/storage.rb, line 5
def initialize(options={})
  @store = options.fetch(:store)
end

Public Instance Methods

get(feature) click to toggle source
# File lib/feature_release/storage.rb, line 13
def get(feature)
  retrieve(feature_key(feature))
end
get_all() click to toggle source
# File lib/feature_release/storage.rb, line 17
def get_all
  (retrieve(global_key) || "").split(",").map(&:to_sym)
end
save(feature, data) click to toggle source
# File lib/feature_release/storage.rb, line 9
def save(feature, data)
  persist(feature, data)
end

Private Instance Methods

feature_key(feature) click to toggle source
# File lib/feature_release/storage.rb, line 24
def feature_key(feature)
    "feature:#{feature}"
end
global_key() click to toggle source
# File lib/feature_release/storage.rb, line 28
def global_key
    "features:all"
end
persist(feature, data) click to toggle source
# File lib/feature_release/storage.rb, line 32
def persist(feature, data)
    @store.set(feature_key(feature), data)
    @store.set(global_key, (get_all | [feature]).join(","))
end
retrieve(key) click to toggle source
# File lib/feature_release/storage.rb, line 37
def retrieve(key)
    @store.get(key)
end