class SmoothChange::Feature

A feature to be mentioned by a feature flag

Attributes

mode[R]
name[RW]

Public Class Methods

new(name, mode) click to toggle source
# File lib/smooth_change/feature.rb, line 9
def initialize(name, mode)
  self.name = name
  self.mode = mode
end

Public Instance Methods

default_enabled_value() click to toggle source

@return [Boolean]

# File lib/smooth_change/feature.rb, line 34
def default_enabled_value
  mode == :opt_out
end
enabled_with?(feature_toggler) click to toggle source

@return [Boolean]

# File lib/smooth_change/feature.rb, line 26
def enabled_with?(feature_toggler)
  value = feature_toggler.value_for(name)
  return default_enabled_value if value.nil?

  !!value
end
mode=(value) click to toggle source

@param [String,Symbol] value @return [String,Symbol] value @raise ArgumentError on unexpected value

# File lib/smooth_change/feature.rb, line 17
def mode=(value)
  @mode = case value.to_s
          when "opt_in" then :opt_in
          when "opt_out" then :opt_out
          else raise ArgumentError, "mode must be one of : opt_in, opt_out "
          end
end