Module: Agents

Defined in:
lib/agents.rb,
lib/agents/version.rb,
lib/agents/constants.rb

Defined Under Namespace

Modules: Constants

Constant Summary collapse

VERSION =
"0.1.4"

Class Method Summary collapse

Class Method Details

.is_ipad?(user_agent) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/agents.rb', line 28

def is_ipad?(user_agent)
  !(user_agent =~ /ipad/i).nil?
end

.is_iphone?(user_agent) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/agents.rb', line 24

def is_iphone?(user_agent)
  !(user_agent =~ /iphone|cpu\siphone/i).nil?
end

.random_user_agent(*args) ⇒ Object



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

def random_user_agent(*args)
  args    =   (args.nil? || args.empty?) ? [:desktop] : args
  
  case args.first
    when :phone, :mobile
      (::Agents::Constants::USER_AGENTS[:phones][:iphone] | ::Agents::Constants::USER_AGENTS[:phones][:android])&.sample
    when :tablet
      (::Agents::Constants::USER_AGENTS[:tablets][:ipad] | ::Agents::Constants::USER_AGENTS[:tablets][:android])&.sample
    else
      ::Agents::Constants::USER_AGENTS.dig(*args&.collect(&:to_sym))&.sample
  end
end

.runs_ios?(user_agent) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/agents.rb', line 20

def runs_ios?(user_agent)
  is_iphone?(user_agent) || is_ipad?(user_agent)
end