class Kameleoon::Targeting::BrowserCondition

BrowserCondition is a condition for checking targeting with browser’s type and version

def browser_index_from_name(name)

def browser_index_from_name(name)
  case name
  when CHROME
    BrowserType::CHROME
  when INTERNET_EXPLORER
    BrowserType::INTERNET_EXPLORER
  when FIREFOX
    BrowserType::FIREFOX
  when SAFARI
    BrowserType::SAFARI
  when OPERA
    BrowserType::OPERA
  else
    BrowserType::OTHER
  end
end

def check(browser)

def check(browser)
  browser.is_a?(Kameleoon::Browser) && check_targeting(browser)
end

def check_targeting(browser)

def check_targeting(browser)
  return false if @browser_type != browser.type
  return true if @version.nil?
  version_number = SdkVersion.get_float_version(@version)
  return false if version_number.nan?
  case @version_match_type
  when Operator::EQUAL
    browser.version == version_number
  when Operator::GREATER
    browser.version > version_number
  when Operator::LOWER
    browser.version < version_number
  else
    Logging::KameleoonLogger.error("Unexpected comparing operation for 'Browser' condition: '#{@version_match_type}'")
    false
  end
end

def initialize(json_condition)

def initialize(json_condition)
  super(json_condition)
  @browser_type = browser_index_from_name(json_condition['browser'])
  @version = json_condition['version']
  @version_match_type = json_condition['versionMatchType']
end