Class: BrowserslistUseragent::Match
- Inherits:
-
Object
- Object
- BrowserslistUseragent::Match
- Defined in:
- lib/browserslist_useragent/match.rb
Overview
Checks matching of browserslist queies array to the user agent string
Instance Attribute Summary collapse
-
#queries ⇒ Object
readonly
Returns the value of attribute queries.
-
#user_agent_string ⇒ Object
readonly
Returns the value of attribute user_agent_string.
Instance Method Summary collapse
- #browser? ⇒ Boolean
-
#initialize(queries, user_agent_string) ⇒ Match
constructor
A new instance of Match.
- #version?(allow_higher: false) ⇒ Boolean
Constructor Details
#initialize(queries, user_agent_string) ⇒ Match
Returns a new instance of Match.
10 11 12 13 14 15 16 17 18 |
# File 'lib/browserslist_useragent/match.rb', line 10 def initialize(queries, user_agent_string) @user_agent_string = user_agent_string @queries = queries.each_with_object({}) do |query, hash| query = BrowserslistUseragent::QueryNormalizer.new(query).call family = query[:family].downcase hash[family] ||= [] hash[family].push(query[:version]) end end |
Instance Attribute Details
#queries ⇒ Object (readonly)
Returns the value of attribute queries.
8 9 10 |
# File 'lib/browserslist_useragent/match.rb', line 8 def queries @queries end |
#user_agent_string ⇒ Object (readonly)
Returns the value of attribute user_agent_string.
8 9 10 |
# File 'lib/browserslist_useragent/match.rb', line 8 def user_agent_string @user_agent_string end |
Instance Method Details
#browser? ⇒ Boolean
30 31 32 33 |
# File 'lib/browserslist_useragent/match.rb', line 30 def browser? target_browser = user_agent[:family].downcase queries.key?(target_browser) end |
#version?(allow_higher: false) ⇒ Boolean
20 21 22 23 24 25 26 27 28 |
# File 'lib/browserslist_useragent/match.rb', line 20 def version?(allow_higher: false) return false unless browser? user_agent_version = user_agent[:version] return false if user_agent_version.nil? || user_agent_version == '' semantic = Semantic::Version.new(user_agent[:version]) match_semantic_version(semantic, allow_higher: allow_higher) end |