Sha256: 7f14938a8ce059c41f7a43db9f8838282fc3e243a816e374cad64831cb4bce6a

Contents?: true

Size: 606 Bytes

Versions: 1

Compression:

Stored size: 606 Bytes

Contents

module FeatureState
  
  def feature_broken!(feature_name)
    set_feature_state! feature_name, "broken"
  end
  
  def feature_working!(feature_name)
    set_feature_state! feature_name, "working"
  end
  
  def feature_state(feature_name)
    feature_states[feature_name.to_s]
  end
  
  def broken_features(*features)
    features.flatten.select { |feature_name| feature_state(feature_name) == "broken" }
  end
  
  def feature_states
    super || {}
  end
  
  def set_feature_state!(feature_name, state)
    update_column :feature_states, feature_states.merge(feature_name.to_s => state)
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 app/concerns/feature_state.rb