mobvious 0.3.1 → 0.3.2
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/Gemfile +1 -1
- data/README.md +3 -3
- data/lib/mobvious/strategies/cookie.rb +10 -6
- data/lib/mobvious/version.rb +1 -1
- data/mobvious.gemspec +3 -1
- metadata +106 -29
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -114,12 +114,12 @@ information it can dig out of MobileESPConverted::UserAgentInfo instance.
|
|
114
114
|
|
115
115
|
There are two predefined detection procedures (and you can write your own):
|
116
116
|
|
117
|
-
* `
|
117
|
+
* `:mobile_desktop` (this is the default)
|
118
118
|
distinguishes between `:mobile` and `:desktop`. Tablets
|
119
119
|
are reported as `:desktop`, because their screens are usually large enough to handle
|
120
120
|
web interfaces meant for desktops.
|
121
121
|
|
122
|
-
* `
|
122
|
+
* `:mobile_tablet_desktop` distinguishes between `:mobile`, `:tablet`
|
123
123
|
and `:desktop`.
|
124
124
|
|
125
125
|
### URL (URL pattern matching)
|
@@ -139,7 +139,7 @@ User-Agent detection take precedence.
|
|
139
139
|
|
140
140
|
There is one predefined rule set:
|
141
141
|
|
142
|
-
* `
|
142
|
+
* `:mobile_path` detects all URLs that begin with m. (e.g. `http://m.foo.com/`)
|
143
143
|
as `:mobile`. Doesn't make assumption about other URLs (the detection process
|
144
144
|
continues to the next strategy in order).
|
145
145
|
|
@@ -41,13 +41,17 @@ module Mobvious
|
|
41
41
|
# @param request [Rack::Request]
|
42
42
|
# @param response [Rack::Response]
|
43
43
|
def response_callback(request, response)
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
if response.respond_to? :headers
|
45
|
+
|
46
|
+
response_cookie_already_set = !!response.headers["Set-Cookie"] &&
|
47
|
+
!!response.headers["Set-Cookie"]["mobvious.device_type"]
|
48
|
+
request_cookie = request.cookies['mobvious.device_type']
|
49
|
+
|
50
|
+
# re-set the cookie to renew the expiration date
|
51
|
+
if request_cookie && !response_cookie_already_set
|
52
|
+
set_device_type(response, request_cookie)
|
53
|
+
end
|
47
54
|
|
48
|
-
# re-set the cookie to renew the expiration date
|
49
|
-
if request_cookie && !response_cookie_already_set
|
50
|
-
set_device_type(response, request_cookie)
|
51
55
|
end
|
52
56
|
end
|
53
57
|
|
data/lib/mobvious/version.rb
CHANGED
data/mobvious.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
|
-
s.add_runtime_dependency "rack", ">= 1.
|
19
|
+
s.add_runtime_dependency "rack", ">= 1.1.0"
|
20
20
|
s.add_runtime_dependency "mobileesp_converted", '~> 0.2.0'
|
21
21
|
|
22
22
|
|
@@ -24,6 +24,8 @@ Gem::Specification.new do |s|
|
|
24
24
|
# Smart irb
|
25
25
|
s.add_development_dependency 'pry'
|
26
26
|
|
27
|
+
s.add_development_dependency 'rake'
|
28
|
+
|
27
29
|
# Specs
|
28
30
|
s.add_development_dependency 'minitest'
|
29
31
|
s.add_development_dependency 'mocha'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobvious
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-05-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: mobileesp_converted
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 0.2.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.2.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: pry
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,31 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
47
78
|
- !ruby/object:Gem::Dependency
|
48
79
|
name: minitest
|
49
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
50
81
|
none: false
|
51
82
|
requirements:
|
52
83
|
- - ! '>='
|
@@ -54,10 +85,15 @@ dependencies:
|
|
54
85
|
version: '0'
|
55
86
|
type: :development
|
56
87
|
prerelease: false
|
57
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
58
94
|
- !ruby/object:Gem::Dependency
|
59
95
|
name: mocha
|
60
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
61
97
|
none: false
|
62
98
|
requirements:
|
63
99
|
- - ! '>='
|
@@ -65,10 +101,15 @@ dependencies:
|
|
65
101
|
version: '0'
|
66
102
|
type: :development
|
67
103
|
prerelease: false
|
68
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
69
110
|
- !ruby/object:Gem::Dependency
|
70
111
|
name: rack-test
|
71
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
72
113
|
none: false
|
73
114
|
requirements:
|
74
115
|
- - ! '>='
|
@@ -76,10 +117,15 @@ dependencies:
|
|
76
117
|
version: '0'
|
77
118
|
type: :development
|
78
119
|
prerelease: false
|
79
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
80
126
|
- !ruby/object:Gem::Dependency
|
81
127
|
name: guard
|
82
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
83
129
|
none: false
|
84
130
|
requirements:
|
85
131
|
- - ! '>='
|
@@ -87,10 +133,15 @@ dependencies:
|
|
87
133
|
version: '0'
|
88
134
|
type: :development
|
89
135
|
prerelease: false
|
90
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
91
142
|
- !ruby/object:Gem::Dependency
|
92
143
|
name: guard-minitest
|
93
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
94
145
|
none: false
|
95
146
|
requirements:
|
96
147
|
- - ! '>='
|
@@ -98,10 +149,15 @@ dependencies:
|
|
98
149
|
version: '0'
|
99
150
|
type: :development
|
100
151
|
prerelease: false
|
101
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
102
158
|
- !ruby/object:Gem::Dependency
|
103
159
|
name: rb-inotify
|
104
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
105
161
|
none: false
|
106
162
|
requirements:
|
107
163
|
- - ! '>='
|
@@ -109,10 +165,15 @@ dependencies:
|
|
109
165
|
version: '0'
|
110
166
|
type: :development
|
111
167
|
prerelease: false
|
112
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
113
174
|
- !ruby/object:Gem::Dependency
|
114
175
|
name: libnotify
|
115
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
116
177
|
none: false
|
117
178
|
requirements:
|
118
179
|
- - ! '>='
|
@@ -120,10 +181,15 @@ dependencies:
|
|
120
181
|
version: '0'
|
121
182
|
type: :development
|
122
183
|
prerelease: false
|
123
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
124
190
|
- !ruby/object:Gem::Dependency
|
125
191
|
name: turn
|
126
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
127
193
|
none: false
|
128
194
|
requirements:
|
129
195
|
- - ! '>='
|
@@ -131,7 +197,12 @@ dependencies:
|
|
131
197
|
version: '0'
|
132
198
|
type: :development
|
133
199
|
prerelease: false
|
134
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
135
206
|
description: Rack middleware for choosing a version of an interface to render for
|
136
207
|
given request
|
137
208
|
email:
|
@@ -175,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
175
246
|
version: '0'
|
176
247
|
segments:
|
177
248
|
- 0
|
178
|
-
hash:
|
249
|
+
hash: 1312827557888422141
|
179
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
251
|
none: false
|
181
252
|
requirements:
|
@@ -184,12 +255,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
255
|
version: '0'
|
185
256
|
segments:
|
186
257
|
- 0
|
187
|
-
hash:
|
258
|
+
hash: 1312827557888422141
|
188
259
|
requirements: []
|
189
260
|
rubyforge_project:
|
190
|
-
rubygems_version: 1.8.
|
261
|
+
rubygems_version: 1.8.23
|
191
262
|
signing_key:
|
192
263
|
specification_version: 3
|
193
264
|
summary: Rack middleware for choosing a version of an interface to render for given
|
194
265
|
request
|
195
|
-
test_files:
|
266
|
+
test_files:
|
267
|
+
- spec/mobvious/manager_spec.rb
|
268
|
+
- spec/mobvious/mobvious_spec.rb
|
269
|
+
- spec/mobvious/strategies/cookie_spec.rb
|
270
|
+
- spec/mobvious/strategies/mobileesp_spec.rb
|
271
|
+
- spec/mobvious/strategies/url_spec.rb
|
272
|
+
- spec/spec_helper.rb
|