active_device 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README +35 -2
- data/Rakefile +1 -1
- data/lib/active_device.rb +13 -13
- data/lib/active_device/bot.rb +42 -82
- data/lib/active_device/browser.rb +149 -18
- data/lib/active_device/engine.rb +1 -0
- data/lib/active_device_helper.rb +4 -4
- metadata +2 -2
data/README
CHANGED
@@ -4,6 +4,18 @@ ActiveDevice : Open Mobile Device Detector
|
|
4
4
|
Mobile and Devices User Agent Detector, For Mobile Handsets, Devices and Desktop Browsers.
|
5
5
|
For Detect the Mobile and Recognize its Brand, Model, Engine, OS and Browser.
|
6
6
|
|
7
|
+
Installation
|
8
|
+
============
|
9
|
+
|
10
|
+
Install the gem from gemcutter:
|
11
|
+
|
12
|
+
sudo gem install active_device
|
13
|
+
|
14
|
+
You can also install this as a plugin:
|
15
|
+
|
16
|
+
script/plugin install git://github.com/shenoudab/active_device.git
|
17
|
+
|
18
|
+
|
7
19
|
Usage
|
8
20
|
=======
|
9
21
|
|
@@ -27,10 +39,31 @@ Add this line to your Application Controller
|
|
27
39
|
|
28
40
|
skip_before_filter :set_mobile_format
|
29
41
|
|
30
|
-
|
31
42
|
Example
|
32
43
|
=======
|
33
44
|
|
45
|
+
Examples from ActiveDevice Helper Methods.
|
46
|
+
|
47
|
+
is_mobile_device? : Checking if the Request from Mobile Device
|
48
|
+
is_mobile_browser?
|
49
|
+
is_bot?
|
50
|
+
|
51
|
+
is_device? 'iphone'
|
52
|
+
is_brand? 'Nokia'
|
53
|
+
is_model? 'NokiaE72'
|
54
|
+
|
55
|
+
device_model : Return the Device Model if Mobile.
|
56
|
+
device_brand : Return the Device Brand if Mobile.
|
57
|
+
|
58
|
+
agent_engine : Reurn the Useragnet Engine.
|
59
|
+
agent_os : Return Useragent Device OS.
|
60
|
+
|
61
|
+
Feedback
|
62
|
+
========
|
63
|
+
|
64
|
+
Send Feedback and questions to: sbertel at mobithought.com
|
65
|
+
|
66
|
+
|
34
67
|
More will Coming Soon, Wait for MobiThought
|
35
68
|
|
36
|
-
Copyright (c) 2009 Shenouda Bertel, MobiThought, released under the MIT license
|
69
|
+
Copyright (c) 2009 Shenouda Bertel, MobiThought, released under the MIT license
|
data/Rakefile
CHANGED
@@ -28,7 +28,7 @@ PKG_FILES = FileList[ '[a-zA-Z]*', 'generators/**/*', 'lib/**/*', 'rails/**/*',
|
|
28
28
|
|
29
29
|
spec = Gem::Specification.new do |s|
|
30
30
|
s.name = "active_device"
|
31
|
-
s.version = "1.0.
|
31
|
+
s.version = "1.0.1"
|
32
32
|
s.authors = ["Shenouda Bertel"]
|
33
33
|
s.description = "Device UserAgent Detector"
|
34
34
|
s.email = "sbertel@mobithought.com"
|
data/lib/active_device.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2009 Shenouda Bertel <sbertel@mobithought.com
|
2
|
+
# Copyright (c) 2009 Shenouda Bertel <sbertel@mobithought.com>, MobiThought.
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -84,50 +84,50 @@ module ActiveDevice
|
|
84
84
|
Bot.is_bot? request.user_agent
|
85
85
|
end
|
86
86
|
|
87
|
-
# Can check for a specific
|
87
|
+
# Can check for a specific type
|
88
88
|
# e.g., is_device?('iphone') or is_device?('mobileexplorer')
|
89
89
|
|
90
90
|
def is_device? type
|
91
91
|
request.user_agent.to_s.downcase.include?(type.to_s.downcase)
|
92
92
|
end
|
93
93
|
|
94
|
-
# Can check for a specific
|
95
|
-
# e.g.,
|
94
|
+
# Can check for a specific type
|
95
|
+
# e.g., is_handset?('iphone') or is_handset?('mobileexplorer')
|
96
96
|
|
97
97
|
def is_handset? type
|
98
98
|
Handset.is_handset? request.user_agent, type
|
99
99
|
end
|
100
100
|
|
101
|
-
# Can check for a specific
|
102
|
-
# e.g.,
|
101
|
+
# Can check for a specific brand
|
102
|
+
# e.g., is_brand?('Nokia') or is_brand?('HTC')
|
103
103
|
|
104
104
|
def is_brand? brand
|
105
105
|
Handset.is_brand? request.user_agent, brand
|
106
106
|
end
|
107
107
|
|
108
|
-
# Can check for a specific
|
109
|
-
# e.g.,
|
108
|
+
# Can check for a specific Mobile Model
|
109
|
+
# e.g., is_model?('NokiaE72') or is_model?('Nokia6630')
|
110
110
|
|
111
111
|
def is_model? model
|
112
112
|
Handset.is_model? request.user_agent, model
|
113
113
|
end
|
114
114
|
|
115
|
-
# Can check for a specific
|
116
|
-
# e.g.,
|
115
|
+
# Can check for a specific OS
|
116
|
+
# e.g., is_os?('SymbianOS') or is_os?('Linux')
|
117
117
|
|
118
118
|
def is_os? os
|
119
119
|
Os.is_os? request.user_agent, os
|
120
120
|
end
|
121
121
|
|
122
|
-
# Can check for a specific
|
123
|
-
# e.g.,
|
122
|
+
# Can check for a specific Engine
|
123
|
+
# e.g., is_engine?('Webkit') or is_engine?('Chrome')
|
124
124
|
|
125
125
|
def is_engine? engine
|
126
126
|
Engine.is_engine? request.user_agent, engine
|
127
127
|
end
|
128
128
|
|
129
129
|
# Can check for a specific user agent
|
130
|
-
# e.g.,
|
130
|
+
# e.g., is_browser?('Firefox') or is_browser?('Chrome')
|
131
131
|
|
132
132
|
def is_browser? browser
|
133
133
|
Browser.is_browser? request.user_agent, browser
|
data/lib/active_device/bot.rb
CHANGED
@@ -1,90 +1,50 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
:common => %w(opera),
|
6
|
-
# Mobile browser prefixes
|
7
|
-
:embedded => %w(blackberry docomo waptiger winwap),
|
8
|
-
# Textmode browser prefixes
|
9
|
-
:text => %w(elinks lynx retawq w3m/) << "links ",
|
10
|
-
# Uncommon browser prefixes
|
11
|
-
:rare => %w(advanced amaya amiga aplix cyberdog dillo galaxy genius
|
12
|
-
hotjava ibm ibrowse icab ice klondike ncsa netsurf openwave
|
13
|
-
reqwirelessweb sunrise worldwideweb),
|
14
|
-
# These usually are not prefixes in their normal UA string
|
15
|
-
:odd => %w(android avant firefox k-meleon konqueror netscape safari
|
16
|
-
seamonkey) }
|
1
|
+
class Bot
|
2
|
+
|
3
|
+
##
|
4
|
+
# User agent string.
|
17
5
|
|
18
|
-
|
19
|
-
:mobile => %w(^sec blackberry midp mmp netfront opera safari semc
|
20
|
-
sonyericsson symbian up\\.browser up\\.link) << "windows ce",
|
21
|
-
:moz_compatible => %w(amigavoyager antfresco aol applewebkit avant
|
22
|
-
blackberry elaine gecko ibrowse icab khtml konqueror msie netfront netp
|
23
|
-
netscape omniweb opera teleca voyager),
|
24
|
-
:moz_platform => %w(amiga beos brew bsd danger dreamcast iphone ipod linux
|
25
|
-
mac os/2 palm pda playstation ps2 ps3 psp risc star-blade sunos syllable
|
26
|
-
symbian win x11 zx),
|
27
|
-
:bot => %w(<a <script bot butterfly checker crawl daumoa del\\.icio\\.us
|
28
|
-
depspid flycast heritrix httrack indexing ktxn larbin links-sql
|
29
|
-
me\\.dium miro mozshot nutch odp-entries oneriot pbwf planetwide slurp
|
30
|
-
spider survey thunderbird vermut) << "black widow" }
|
6
|
+
attr_reader :user_agent
|
31
7
|
|
32
|
-
|
33
|
-
|
34
|
-
:mobile => /#{ID[:mobile] * "|"}/,
|
35
|
-
:moz_compatible => /#{ID[:moz_compatible] * "|"}/,
|
36
|
-
:moz_platform => /#{ID[:moz_platform] * "|"}/,
|
37
|
-
:bot => /#{ID[:bot] * "|"}/ }
|
8
|
+
##
|
9
|
+
# Initialize with user agent _string_.
|
38
10
|
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
##
|
44
|
-
# User agent brand symbol.
|
45
|
-
def self.is_bot? user_agent
|
46
|
-
case user_agent
|
47
|
-
when /bot/i ; true
|
48
|
-
when /Spider/i ; true
|
49
|
-
else ; false
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def robot?(user_agent)
|
54
|
-
!browser?(user_agent)
|
55
|
-
end
|
56
|
-
|
57
|
-
def browser?(user_agent)
|
58
|
-
# Empty string might be an anonymized browser
|
59
|
-
return true if user_agent.nil? || user_agent =~ /^\s*$/
|
60
|
-
ua_lc = user_agent.downcase
|
61
|
-
if ua_lc[0,7] == "mozilla"
|
62
|
-
is_browser = ua_lc =~ REGEXP[:moz_compatible] || ua_lc =~ REGEXP[:moz_platform]
|
63
|
-
else
|
64
|
-
is_browser = ua_lc =~ REGEXP[:prefix] || ua_lc =~ REGEXP[:mobile]
|
65
|
-
end
|
66
|
-
is_browser = ua_lc[REGEXP[:bot]].nil? if is_browser
|
67
|
-
return is_browser
|
68
|
-
end
|
11
|
+
def initialize user_agent
|
12
|
+
@user_agent = user_agent.strip
|
69
13
|
end
|
70
14
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
15
|
+
##
|
16
|
+
# Check UserAgent is Bot.
|
17
|
+
def self.is_bot? user_agent
|
18
|
+
case user_agent
|
19
|
+
when /bot/i ; true
|
20
|
+
when /Spider/i ; true
|
21
|
+
when /Butterfly/i ; true
|
22
|
+
when /Checker/i ; true
|
23
|
+
when /Crawl/i ; true
|
24
|
+
when /Daumoa/i ; true
|
25
|
+
when /Delicious/i ; true
|
26
|
+
when /del.icio.us/i ; true
|
27
|
+
when /Depspid/i ; true
|
28
|
+
when /Flycast/i ; true
|
29
|
+
when /Heritrix/i ; true
|
30
|
+
when /Httrack/i ; true
|
31
|
+
when /Indexing/i ; true
|
32
|
+
when /Ktxn/i ; true
|
33
|
+
when /Larbin/i ; true
|
34
|
+
when /Links-sql/i ; true
|
35
|
+
when /Me.dium/i ; true
|
36
|
+
when /Miro/i ; true
|
37
|
+
when /Mozshot/i ; true
|
38
|
+
when /Nutch/i ; true
|
39
|
+
when /odp-entries/i ; true
|
40
|
+
when /oneriot/i ; true
|
41
|
+
when /pbwf/i ; true
|
42
|
+
when /planetwide/i ; true
|
43
|
+
when /slurp/i ; true
|
44
|
+
when /Survey/i ; true
|
45
|
+
when /Thunderbird/i ; true
|
46
|
+
when /Vermut/i ; true
|
47
|
+
else ; false
|
88
48
|
end
|
89
49
|
end
|
90
50
|
|
@@ -1,6 +1,3 @@
|
|
1
|
-
# To change this template, choose Tools | Templates
|
2
|
-
# and open the template in the editor.
|
3
|
-
|
4
1
|
class Browser
|
5
2
|
##
|
6
3
|
# User agent string.
|
@@ -8,7 +5,7 @@ class Browser
|
|
8
5
|
attr_reader :user_agent
|
9
6
|
|
10
7
|
##
|
11
|
-
# Initialize with user agent
|
8
|
+
# Initialize with user agent _user_agent_.
|
12
9
|
|
13
10
|
def initialize user_agent
|
14
11
|
@user_agent = user_agent.strip
|
@@ -19,21 +16,155 @@ class Browser
|
|
19
16
|
|
20
17
|
def self.name user_agent
|
21
18
|
case user_agent
|
22
|
-
when /
|
23
|
-
when /
|
24
|
-
when /
|
25
|
-
when /
|
19
|
+
when /ABrowse/i ; :ABrowse
|
20
|
+
when /AbiLogicBot/i ; :AbiLogicBot # Link Checker
|
21
|
+
when /Acoo/i ; :'Acoo Browser'
|
22
|
+
when /Advanced/i ; :Advanced
|
23
|
+
when /America Online/i ; :'America Online Browser'
|
24
|
+
when /Amaya/i ; :Amaya
|
25
|
+
when /Amiga[\/ ]/i ; :Amiga
|
26
|
+
when /AmigaVoyager/i ; :AmigaVoyager
|
26
27
|
when /Android/i ; :Android
|
27
|
-
when /
|
28
|
-
when /
|
29
|
-
when /
|
30
|
-
when /
|
31
|
-
when /
|
32
|
-
when /
|
33
|
-
when /
|
34
|
-
when /
|
35
|
-
when /
|
36
|
-
when /
|
28
|
+
when /AOL/i ; :AOL
|
29
|
+
when /Aplix/i ; :Aplix
|
30
|
+
when /Arora/i ; :Arora
|
31
|
+
when /Avant/i ; :Avant
|
32
|
+
when /Beonex/i ; :Beonex
|
33
|
+
when /Bloglines/i ; :Bloglines # Feed Reader
|
34
|
+
when /BonEcho/i ; :BonEcho
|
35
|
+
when /Camino/i ; :Camino
|
36
|
+
when /Charon/i ; :Charon
|
37
|
+
when /Cheshire/i ; :Cheshire
|
38
|
+
when /Chimera/i ; :Chimera
|
39
|
+
when /Chrome[\/ ]/i ; :Chrome
|
40
|
+
when /ChromePlus/i ; :ChromePlus
|
41
|
+
when /CometBird/i ; :CometBird
|
42
|
+
when /Crazy/i ; :Crazy
|
43
|
+
when /CSE HTML Validator/i ; :'CSE HTML Validator' # Validator
|
44
|
+
when /CSSCheck/i ; :CSSCheck # Validator
|
45
|
+
when /Cyberdog/i ; :Cyberdog
|
46
|
+
when /Cynthia/i ; :Cynthia # Validator
|
47
|
+
when /Deepnet/i ; :Deepnet
|
48
|
+
when /DeskBrowse/i ; :DeskBrowse
|
49
|
+
when /DOCOMO/i ; :DOCOMO #Embedded Mobile Based
|
50
|
+
when /Dillo/i ; :Dillo
|
51
|
+
when /Elinks/i ; :Elinks
|
52
|
+
when /Enigma/i ; :Enigma
|
53
|
+
when /Epiphany/i ; :Epiphany
|
54
|
+
when /Everyfeed-spider/i ; :'Everyfeed-spider' # Feed Reader
|
55
|
+
when /FeedFetcher-Google/i ; :'FeedFetcher-Google' # Feed Reader
|
56
|
+
when /Fennec/i ; :Fennec
|
57
|
+
when /Firebird/i ; :Firebird
|
58
|
+
when /Firefox[\/ ]/i ; :Firefox
|
59
|
+
when /Flock/i ; :Flock
|
60
|
+
when /Fluid/i ; :Fluid
|
61
|
+
when /Galaxy/i ; :Galaxy
|
62
|
+
when /Galeon/i ; :Galeon
|
63
|
+
when /Genius/i ; :Genius
|
64
|
+
when /GranParadiso/i ; :GranParadiso
|
65
|
+
when /Green/i ; :Green
|
66
|
+
when /Gregarius/i ; :Gregarius # Feed Reader
|
67
|
+
when /HTMLParser/i ; :HTMLParser # Validator
|
68
|
+
when /Hana/i ; :Hana
|
69
|
+
when /HotJava/i ; :HotJava
|
70
|
+
when /IBM WebExplorer/i ; :'IBM WebExplorer'
|
71
|
+
when /IBrowse/i ; :IBrowse
|
72
|
+
when /iCab/i ; :iCab
|
73
|
+
when /Iceape/i ; :Iceape
|
74
|
+
when /IceCat/i ; :IceCat
|
75
|
+
when /Iceweasel/i ; :Iceweasel
|
76
|
+
when /iNet/i ; :iNet
|
77
|
+
when /iPhone/i ; :iPhone #Embedded Mobile Based
|
78
|
+
when /Iron/i ; :Iron
|
79
|
+
when /Java/i ; :Java # Library
|
80
|
+
when /K-Meleon/i ; :'K-Meleon'
|
81
|
+
when /K-Ninja/i ; :'K-Ninja'
|
82
|
+
when /Kapiko/i ; :Kapiko
|
83
|
+
when /Kazehakase/i ; :Kazehakase
|
84
|
+
when /KKman/i ; :KKman
|
85
|
+
when /klondike/i ; :Klondike
|
86
|
+
when /KMLite/i ; :KMLite
|
87
|
+
when /Konqueror/i ; :Konqueror
|
88
|
+
when /LeechCraft/i ; :LeechCraft
|
89
|
+
when /Link Valet/i ; :'Link Valet' # Link Checker
|
90
|
+
when /Link Validity Check/i ; :'Link Validity Check' # Link Checker
|
91
|
+
when /LinksManager.com_bot/i ; :'LinksManager.com_bot' # Link Checker
|
92
|
+
when /Links/i ; :Links
|
93
|
+
when /libwww-perl/i ; :'libwww-perl' # Library
|
94
|
+
when /Lobo/i ; :Lobo
|
95
|
+
when /Lolifox/i ; :Lolifox
|
96
|
+
when /Lunascape/i ; :Lunascape
|
97
|
+
when /Lynx/i ; :Lynx
|
98
|
+
when /Madfox/i ; :Madfox
|
99
|
+
when /Maxthon/i ; :Maxthon
|
100
|
+
when /Midori/i ; :Midori
|
101
|
+
when /Minefield/i ; :Minefield
|
102
|
+
when /Minimo/i ; :Minimo
|
103
|
+
when /Mojoo Robot/i ; :'Mojoo Robot' # Link Checker
|
104
|
+
when /MSIE[\/ ]/i ; :IE #Common
|
105
|
+
when /MultiZilla/i ; :MultiZilla
|
106
|
+
when /MyIE2/i ; :MyIE2
|
107
|
+
when /Namoroka/i ; :Namoroka
|
108
|
+
when /NCSA/i ; :NCSA_Mosaic
|
109
|
+
when /NetFront/i ; :NetFront
|
110
|
+
when /NetNewsWire/i ; :NetNewsWire
|
111
|
+
when /NetPositive/i ; :NetPositive
|
112
|
+
when /Netscape/i ; :Netscape
|
113
|
+
when /NetSurf/i ; :NetSurf
|
114
|
+
when /Notifixious/i ; :Notifixious # Link Validator
|
115
|
+
when /Offline Explorer/i ; :'Offline Explorer' # Offline Browser
|
116
|
+
when /OmniWeb/i ; :OmniWeb
|
117
|
+
when /Online link validator/i; :'Online link validator' # Link Validator
|
118
|
+
when /Openwave/i ; :OpenWave
|
119
|
+
when /Opera Mini/i ; :'Opera Mini' #Embedded Mobile Based
|
120
|
+
when /Opera Mobi/i ; :'Opera Mobile' #Embedded Mobile Based
|
121
|
+
when /Opera[\/ ]/i ; :Opera #Common
|
122
|
+
when /Orca/i ; :Orca
|
123
|
+
when /Oregano/i ; :Oregano
|
124
|
+
when /P3P Validator/i ; :'P3P Validator' # Validator
|
125
|
+
when /Palm/i ; :Palm
|
126
|
+
when /Peach/i ; :Peach # Library
|
127
|
+
when /Playstation 3/i ; :PS3 # Console
|
128
|
+
when /Playstation portable/i ; :PSP # Console
|
129
|
+
when /Phoenix/i ; :Phoenix
|
130
|
+
when /Pogo/i ; :Pogo
|
131
|
+
when /Python-urllib/i ; :'Python-urllib' # Library
|
132
|
+
when /QtWeb/i ; :QtWeb
|
133
|
+
when /Reciprocal Link/i ; :'Reciprocal Link' # Link Checker
|
134
|
+
when /REL Link Checker Lite/i; :'REL Link Checker Lite' # Link Checker
|
135
|
+
when /retawq/i ; :Retawq
|
136
|
+
when /reqwirelessweb/i ; :Reqwirelessweb
|
137
|
+
when /Safari[\/ ]/i ; :Safari
|
138
|
+
when /SeaMonkey/i ; :SeaMonkey
|
139
|
+
when /Shiira/i ; :Shiira
|
140
|
+
when /Shiretoko/i ; :Shiretoko
|
141
|
+
when /SiteBar/i ; :SiteBar #Link Checker
|
142
|
+
when /Sleipnir/i ; :Sleipnir
|
143
|
+
when /Stainless/i ; :Stainless
|
144
|
+
when /Sunrise/i ; :Sunrise
|
145
|
+
when /SuperBot/i ; :SuperBot # Offline Browser
|
146
|
+
when /SymbianOS/i ; :SymbianOS #Embedded Mobile Based
|
147
|
+
when /Symbian/i ; :Symbian #Embedded Mobile Based
|
148
|
+
when /TeaShark/i ; :TeaShark
|
149
|
+
when /Thunderbird/i ; :Thunderbird # E-Mail Client
|
150
|
+
when /uzbl/i ; :Uzbl
|
151
|
+
when /Vivante Link Checker/i ; :'Vivante Link Checker' # Link Checker
|
152
|
+
when /w3m/i ; :w3m
|
153
|
+
when /W3C-checklink/i ; :'W3C-checklink' # Link Checker
|
154
|
+
when /W3C_CSS_Validator_JFouffa/i ; :W3C_CSS_Validator_JFouffa # Validator
|
155
|
+
when /W3C_Validator/i ; :W3C_Validator # Validator
|
156
|
+
when /WapTiger/i ; :WapTiger #Embedded Mobile Based
|
157
|
+
when /WDG_Validator/i ; :WDG_Validator # Validator
|
158
|
+
when /Web Downloader/i ; :'Web Downloader' # Offline Browser
|
159
|
+
when /WebCopier/i ; :WebCopier # Offline Browser
|
160
|
+
when /WebZIP/i ; :WebZIP # Offline Browser
|
161
|
+
when /Wget/i ; :Wget # Offline Browser
|
162
|
+
when /Winwap/i ; :Winwap #Embedded Mobile Based
|
163
|
+
when /Wii/i ; :Wii # Console
|
164
|
+
when /WorldWideWeb/i ; :WorldWideWeb
|
165
|
+
when /Wyzo/i ; :Wyzo
|
166
|
+
when /Xenu Link Sleuth/i ; :'Xenu Link Sleuth' # Link Checker
|
167
|
+
when /Mozilla/i ; :Mozilla #Common
|
37
168
|
else ; :Unknown
|
38
169
|
end
|
39
170
|
end
|
data/lib/active_device/engine.rb
CHANGED
data/lib/active_device_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2009 Shenouda Bertel <sbertel@mobithought.com
|
2
|
+
# Copyright (c) 2009 Shenouda Bertel <sbertel@mobithought.com>, MobiThought.
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -86,21 +86,21 @@ module ActiveDevice
|
|
86
86
|
##
|
87
87
|
# User agent model symbol.
|
88
88
|
|
89
|
-
def
|
89
|
+
def device_model
|
90
90
|
Model.brand_model request.user_agent
|
91
91
|
end
|
92
92
|
|
93
93
|
##
|
94
94
|
# User agent model Reselution symbol.
|
95
95
|
|
96
|
-
def
|
96
|
+
def device_model_reselution
|
97
97
|
Model.model_reselution request.user_agent
|
98
98
|
end
|
99
99
|
|
100
100
|
##
|
101
101
|
# User agent brand symbol.
|
102
102
|
|
103
|
-
def
|
103
|
+
def device_brand
|
104
104
|
Brand.mobile_brand request.user_agent
|
105
105
|
end
|
106
106
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_device
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shenouda Bertel
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-26 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|