class Humr::Handler::UserAgent

Constants

UA_LIKE_PATTERN

Public Instance Methods

replace(s, &block) click to toggle source
# File lib/humr/handler/user_agent.rb, line 14
def replace(s, &block)
  return unless UA_LIKE_PATTERN.match(s)

  ua = ::UserAgent.parse(s)

  return unless ua.version

  readable = if ua.bot?
    ua.os
  else
    '%s %s%s' % [
      ua.browser,
      rough_version(ua.version.to_s),
      if ua.os and not ua.os.empty?
        " (#{rough_version(ua.os)})"
      end
    ]
  end

  readable.sub(/.*/, &block) if readable
end
rough_version(s) click to toggle source
# File lib/humr/handler/user_agent.rb, line 8
def rough_version(s)
  s.sub(/(\d+\.\d+)(?:\.\d+)*/, '\1').sub(/\.0$/, '')
end