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