class RolloutPostgresStore
Constants
- VERSION
Public Class Methods
new(model, attribute)
click to toggle source
# File lib/rollout_postgres_store.rb, line 2 def initialize(model, attribute) @model = model @attribute = attribute end
Public Instance Methods
del(key)
click to toggle source
# File lib/rollout_postgres_store.rb, line 23 def del(key) if flag = @model.where("#{@attribute} ? '#{key}'").first flag.delete end end
get(key)
click to toggle source
# File lib/rollout_postgres_store.rb, line 7 def get(key) if flag = @model.where("#{@attribute} ? '#{key}'").first flag.send(@attribute)[key] end end
set(key, value)
click to toggle source
# File lib/rollout_postgres_store.rb, line 13 def set(key, value) current = get(key) if current.nil? create_feature_flag(key, value) else update_flag(key, value) end end
Private Instance Methods
create_feature_flag(key, value)
click to toggle source
# File lib/rollout_postgres_store.rb, line 30 def create_feature_flag(key, value) flag = @model.new flag.send("#{@attribute}=", { key => value }) flag.save end
update_flag(key, value)
click to toggle source
# File lib/rollout_postgres_store.rb, line 36 def update_flag(key, value) flag = @model.where("#{@attribute} ? '#{key}'").first flag.send(@attribute)[key] = value flag.send("#{@attribute}_will_change!") flag.save end