active_device 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|