Class: DeviceMap::UserAgent

Inherits:
Object
  • Object
show all
Defined in:
lib/device_map/user_agent.rb

Instance Method Summary collapse

Constructor Details

#initialize(user_agent) ⇒ UserAgent

Returns a new instance of UserAgent.



3
4
5
# File 'lib/device_map/user_agent.rb', line 3

def initialize(user_agent)
  @user_agent = user_agent
end

Instance Method Details

#keyword_ngrams(size) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/device_map/user_agent.rb', line 7

def keyword_ngrams(size)
  keywords = @user_agent.split(/[\s;\-_\/()\[\]\\]+/)
  normalized_keywords = Keyword.normalize(keywords)

  normalized_keywords.flat_map.with_index do |keyword, i|
    size.times.map do |j|
      next_keywords = normalized_keywords[i + 1..-1] || []
      Array(keyword).concat next_keywords.take(j)
    end
  end.uniq
end