class Shoulda::Matchers::ActiveModel::Qualifiers::IgnoreInterferenceByWriter

def set(argument)

def set(argument)
  if argument.is_a?(self.class)
    @setting = argument.setting
    @condition = argument.condition
  else
    case argument
    when true, :always
      @setting = :always
    when false, :never
      @setting = :never
    else
      @setting = :sometimes
      if argument.is_a?(Hash)
        @condition = argument.fetch(:when)
      else
        raise invalid_argument_error(argument)
      end
    end
  end
  @changed = true
  self
rescue KeyError
  raise invalid_argument_error(argument)
end