class ActionController::AllowBrowser::BrowserBlocker

:nodoc:

def blocked?

def blocked?
  user_agent_version_reported? && unsupported_browser?
end

def bot?

def bot?
  parsed_user_agent.bot?
end

def expanded_versions

def expanded_versions
  @expanded_versions ||= (SETS[versions] || versions).with_indifferent_access
end

def initialize(request, versions:)

def initialize(request, versions:)
  @request, @versions = request, versions
end

def minimum_browser_version_for_browser

def minimum_browser_version_for_browser
  expanded_versions[normalized_browser_name]
end

def normalized_browser_name

def normalized_browser_name
  case name = parsed_user_agent.browser.downcase
  when "internet explorer" then "ie"
  else name
  end
end

def parsed_user_agent

def parsed_user_agent
  @parsed_user_agent ||= UserAgent.parse(request.user_agent)
end

def unsupported_browser?

def unsupported_browser?
  version_guarded_browser? && version_below_minimum_required? && !bot?
end

def user_agent_version_reported?

def user_agent_version_reported?
  request.user_agent.present? && parsed_user_agent.version.to_s.present?
end

def version_below_minimum_required?

def version_below_minimum_required?
  if minimum_browser_version_for_browser
    parsed_user_agent.version < UserAgent::Version.new(minimum_browser_version_for_browser.to_s)
  else
    true
  end
end

def version_guarded_browser?

def version_guarded_browser?
  minimum_browser_version_for_browser != nil
end