Class: Browser
- Inherits:
-
Object
- Object
- Browser
- Defined in:
- lib/active_device/browser.rb
Instance Attribute Summary collapse
-
#user_agent ⇒ Object
readonly
User agent string.
Class Method Summary collapse
-
.is_browser?(user_agent, browser) ⇒ Boolean
Is string.
-
.name(user_agent) ⇒ Object
Return name for user agent user_agent.
-
.version(user_agent) ⇒ Object
Return version for user agent user_agent.
Instance Method Summary collapse
-
#initialize(user_agent) ⇒ Browser
constructor
Initialize with user agent user_agent.
Constructor Details
#initialize(user_agent) ⇒ Browser
Initialize with user agent user_agent.
10 11 12 |
# File 'lib/active_device/browser.rb', line 10 def initialize user_agent @user_agent = user_agent.strip end |
Instance Attribute Details
#user_agent ⇒ Object (readonly)
User agent string.
5 6 7 |
# File 'lib/active_device/browser.rb', line 5 def user_agent @user_agent end |
Class Method Details
.is_browser?(user_agent, browser) ⇒ Boolean
Is string. Device
206 207 208 209 210 211 |
# File 'lib/active_device/browser.rb', line 206 def self.is_browser? user_agent, browser browser_sym = name user_agent browser_sym = browser_sym.to_s.downcase browser = browser.to_s.downcase browser_sym.include? browser end |
.name(user_agent) ⇒ Object
Return name for user agent user_agent.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 |
# File 'lib/active_device/browser.rb', line 17 def self.name user_agent case user_agent when /ABrowse/i ; :ABrowse when /AbiLogicBot/i ; :AbiLogicBot # Link Checker when /Acoo/i ; :'Acoo Browser' when /Advanced/i ; :Advanced when /America Online/i ; :'America Online Browser' when /Amaya/i ; :Amaya when /Amiga[\/ ]/i ; :Amiga when /AmigaVoyager/i ; :AmigaVoyager when /Android/i ; :Android when /AOL/i ; :AOL when /Aplix/i ; :Aplix when /Arora/i ; :Arora when /Avant/i ; :Avant when /Beonex/i ; :Beonex when /BlackBerry/i ; :BlackBerry when /Bloglines/i ; :Bloglines # Feed Reader when /BonEcho/i ; :BonEcho when /Camino/i ; :Camino when /Charon/i ; :Charon when /Cheshire/i ; :Cheshire when /Chimera/i ; :Chimera when /Chrome[\/ ]/i ; :Chrome when /ChromePlus/i ; :ChromePlus when /CometBird/i ; :CometBird when /Crazy/i ; :Crazy when /CSE HTML Validator/i ; :'CSE HTML Validator' # Validator when /CSSCheck/i ; :CSSCheck # Validator when /Cyberdog/i ; :Cyberdog when /Cynthia/i ; :Cynthia # Validator when /Deepnet/i ; :Deepnet when /DeskBrowse/i ; :DeskBrowse when /DOCOMO/i ; :DOCOMO #Embedded Mobile Based when /Dillo/i ; :Dillo when /Elinks/i ; :Elinks when /Enigma/i ; :Enigma when /Epiphany/i ; :Epiphany when /Everyfeed-spider/i ; :'Everyfeed-spider' # Feed Reader when /FeedFetcher-Google/i ; :'FeedFetcher-Google' # Feed Reader when /Fennec/i ; :Fennec when /Firebird/i ; :Firebird when /Firefox[\/ ]/i ; :Firefox when /Flock/i ; :Flock when /Fluid/i ; :Fluid when /Galaxy/i ; :Galaxy when /Galeon/i ; :Galeon when /Genius/i ; :Genius when /GranParadiso/i ; :GranParadiso when /Green/i ; :Green when /Gregarius/i ; :Gregarius # Feed Reader when /HTMLParser/i ; :HTMLParser # Validator when /Hana/i ; :Hana when /HotJava/i ; :HotJava when /IBM WebExplorer/i ; :'IBM WebExplorer' when /IBrowse/i ; :IBrowse when /iCab/i ; :iCab when /Iceape/i ; :Iceape when /IceCat/i ; :IceCat when /Iceweasel/i ; :Iceweasel when /iNet/i ; :iNet when /iPad/i ; :iPad when /iPhone/i ; :iPhone #Embedded Mobile Based when /Iron/i ; :Iron when /Java/i ; :Java # Library when /K-Meleon/i ; :'K-Meleon' when /K-Ninja/i ; :'K-Ninja' when /Kapiko/i ; :Kapiko when /Kazehakase/i ; :Kazehakase when /KKman/i ; :KKman when /klondike/i ; :Klondike when /KMLite/i ; :KMLite when /Konqueror/i ; :Konqueror when /LeechCraft/i ; :LeechCraft when /Link Valet/i ; :'Link Valet' # Link Checker when /Link Validity Check/i ; :'Link Validity Check' # Link Checker when /LinksManager.com_bot/i ; :'LinksManager.com_bot' # Link Checker when /Links/i ; :Links when /libwww-perl/i ; :'libwww-perl' # Library when /Lobo/i ; :Lobo when /Lolifox/i ; :Lolifox when /Lunascape/i ; :Lunascape when /Lynx/i ; :Lynx when /Madfox/i ; :Madfox when /Maxthon/i ; :Maxthon when /Midori/i ; :Midori when /Minefield/i ; :Minefield when /Minimo/i ; :Minimo when /Mojoo Robot/i ; :'Mojoo Robot' # Link Checker when /MSIE[\/ ]/i ; :IE #Common when /MultiZilla/i ; :MultiZilla when /MyIE2/i ; :MyIE2 when /Namoroka/i ; :Namoroka when /NCSA/i ; :NCSA_Mosaic when /NetFront/i ; :NetFront when /NetNewsWire/i ; :NetNewsWire when /NetPositive/i ; :NetPositive when /Netscape/i ; :Netscape when /NetSurf/i ; :NetSurf when /Notifixious/i ; :Notifixious # Link Validator when /Offline Explorer/i ; :'Offline Explorer' # Offline Browser when /OmniWeb/i ; :OmniWeb when /Online link validator/i; :'Online link validator' # Link Validator when /Openwave/i ; :OpenWave when /Opera Mini/i ; :'Opera Mini' #Embedded Mobile Based when /Opera Mobi/i ; :'Opera Mobile' #Embedded Mobile Based when /Opera[\/ ]/i ; :Opera #Common when /Orca/i ; :Orca when /Oregano/i ; :Oregano when /P3P Validator/i ; :'P3P Validator' # Validator when /Palm/i ; :Palm when /Peach/i ; :Peach # Library when /Playstation 3/i ; :PS3 # Console when /Playstation portable/i ; :PSP # Console when /Phoenix/i ; :Phoenix when /Pogo/i ; :Pogo when /Python-urllib/i ; :'Python-urllib' # Library when /QtWeb/i ; :QtWeb when /Reciprocal Link/i ; :'Reciprocal Link' # Link Checker when /REL Link Checker Lite/i; :'REL Link Checker Lite' # Link Checker when /retawq/i ; :Retawq when /reqwirelessweb/i ; :Reqwirelessweb when /Safari[\/ ]/i ; :Safari when /SeaMonkey/i ; :SeaMonkey when /Shiira/i ; :Shiira when /Shiretoko/i ; :Shiretoko when /SiteBar/i ; :SiteBar #Link Checker when /Skyfire/i ; :Skyfire when /Sleipnir/i ; :Sleipnir when /Stainless/i ; :Stainless when /Sunrise/i ; :Sunrise when /SuperBot/i ; :SuperBot # Offline Browser when /SymbianOS/i ; :SymbianOS #Embedded Mobile Based when /Symbian/i ; :Symbian #Embedded Mobile Based when /TeaShark/i ; :TeaShark when /Thunderbird/i ; :Thunderbird # E-Mail Client when /UCWEB/i ; :UCWEB when /uzbl/i ; :Uzbl when /Vivante Link Checker/i ; :'Vivante Link Checker' # Link Checker when /w3m/i ; :w3m #when /W3C-checklink/i ; :'W3C-checklink' # Link Checker #when /W3C_CSS_Validator_JFouffa/i ; :W3C_CSS_Validator_JFouffa # Validator #when /W3C_Validator/i ; :W3C_Validator # Validator when /WapTiger/i ; :WapTiger #Embedded Mobile Based when /WDG_Validator/i ; :WDG_Validator # Validator when /Web Downloader/i ; :'Web Downloader' # Offline Browser when /WebCopier/i ; :WebCopier # Offline Browser when /webOS/i ; :Palm when /WebZIP/i ; :WebZIP # Offline Browser when /Wget/i ; :Wget # Offline Browser when /Winwap/i ; :Winwap #Embedded Mobile Based when /Wii/i ; :Wii # Console when /WorldWideWeb/i ; :WorldWideWeb when /Wyzo/i ; :Wyzo when /Xenu Link Sleuth/i ; :'Xenu Link Sleuth' # Link Checker when /Mozilla/i ; :Mozilla #Common else ; :Unknown end end |
.version(user_agent) ⇒ Object
Return version for user agent user_agent.
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/active_device/browser.rb', line 180 def self.version user_agent name = name user_agent case name when :Chrome ; $1 if user_agent =~ /chrome\/([\d\w\.\-]+)/i when :Safari ; if user_agent =~ /version\/([\d\w\.\-]+)/i $1 elsif user_agent =~ /Safari([0-9\.\-]+)/i $1 else user_agent =~ /Safari\/([0-9\.\-]+)/i $1 end when :PS3 ; $1 if user_agent =~ /([\d\w\.\-]+)\)\s*$/i when :PSP ; $1 if user_agent =~ /([\d\w\.\-]+)\)?\s*$/i # when :SymbianOS ; $1 if user_agent =~ /\/([\d\w\.\-]+)/i #\)?\s*$ # when :Symbian ; $1 if user_agent =~ /\ ([0-9\d\w\.\-]+)\)?\s*$/i # when :iPhone ; $1 if user_agent =~ /([\d\w\.\-]+)\)?\s*$/i when :iPhone ; $1 if user_agent =~ /#{name.to_s} OS ([0-9\-\.\_]+)/i #when name[/safari([0-9\-\.\_]+)/i] ; $1 if name =~ /([0-9\-\.\_]+)/i else $1 if user_agent =~ /#{name.to_s}[\/ ]([\d\w\.\-]+)/i end end |