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