20 lines
577 B
Ruby
20 lines
577 B
Ruby
require 'user_agent'
|
|
|
|
class Browser < Struct.new(:browser, :version)
|
|
def self.supported?(user_agent)
|
|
user_agent = UserAgent.parse(user_agent)
|
|
return false if minimum_browsers.any?{ |browser| user_agent < browser }
|
|
true # if we don't recognize it (e.g. Android), be nice
|
|
end
|
|
|
|
def self.configuration
|
|
@configuration ||= YAML.load_file(File.expand_path('../../config/browsers.yml', __FILE__))
|
|
end
|
|
|
|
def self.minimum_browsers
|
|
@minimum_browsers ||= (configuration['minimums'] || []).
|
|
map{ |browser, version| new(browser, version.to_s) }
|
|
end
|
|
end
|
|
|