rack-user_agent 0.4.2 → 0.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7c818afbe96660a99b0937583767e2bbb497e98
4
- data.tar.gz: 6d21684f7ca29a3c107195c429a8a793ba5d927f
3
+ metadata.gz: e77ace242d9acad266c01d710575a5bf6345b4db
4
+ data.tar.gz: 3d403a258cec9b2d03a17dbe1726919114972205
5
5
  SHA512:
6
- metadata.gz: ed84768e2afe458c3d84f130d5b9d46254dc122457a4d7788b1a6cd06cd0633e7655a00b45c1983feee694d1d95c350e522db935c31ae6e0c29f55cfdf92a223
7
- data.tar.gz: 040d9966b293957fdd2d37b44145404ef5e9d8724290a452d246da237e9618bc0b289e08b9ad75d252594d959e9a8195c56b44210d44e19872bdd80ce69c5d11
6
+ metadata.gz: b83e2cc607bf898700702f4d0c18cb74cd728daeba143f16c81eafd72401130cec4c82db0fbde84df86ef4d469ab6efde626be53d0b2951bc4cfe229d3abe116
7
+ data.tar.gz: a18eeb7ad762ce313c26e6a97f9f91cb827bba4bf050a424ff872a65de43115fb28accc60a54bbda6486efc8181b7f8aa9f7e09bf59b44bb3f727698e016d1b6
@@ -5,6 +5,7 @@ rvm:
5
5
  - 2.0.0
6
6
  - 2.1
7
7
  - 2.2
8
+ - 2.3.0
8
9
  branches:
9
10
  only:
10
11
  - master
@@ -24,6 +24,10 @@ module Rack
24
24
  os == "iPod"
25
25
  end
26
26
 
27
+ def from_ios?
28
+ from_iphone? || from_ipad? || from_ipod?
29
+ end
30
+
27
31
  def from_android?
28
32
  os == "Android" && android_mobile?
29
33
  end
@@ -32,6 +36,10 @@ module Rack
32
36
  os == "Android" && !android_mobile?
33
37
  end
34
38
 
39
+ def from_android_os?
40
+ from_android? || from_android_tablet?
41
+ end
42
+
35
43
  def from_windows_phone?
36
44
  os == "Windows Phone OS"
37
45
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class UserAgent
3
- VERSION = "0.4.2"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -8,6 +8,7 @@ describe "Rack::UserAgent::Detector" do
8
8
  SMARTPHONES = [
9
9
  {
10
10
  name: "iPhone",
11
+ os: "iOS",
11
12
  version: "5.1.1",
12
13
  user_agents: [
13
14
  "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3",
@@ -15,6 +16,7 @@ describe "Rack::UserAgent::Detector" do
15
16
  },
16
17
  {
17
18
  name: "iPhone",
19
+ os: "iOS",
18
20
  version: "6.0",
19
21
  user_agents: [
20
22
  "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25",
@@ -22,6 +24,7 @@ describe "Rack::UserAgent::Detector" do
22
24
  },
23
25
  {
24
26
  name: "iPad",
27
+ os: "iOS",
25
28
  version: "6.0",
26
29
  user_agents: [
27
30
  "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"
@@ -29,6 +32,7 @@ describe "Rack::UserAgent::Detector" do
29
32
  },
30
33
  {
31
34
  name: "iPod",
35
+ os: "iOS",
32
36
  version: "8.0",
33
37
  user_agents: [
34
38
  "Mozilla/5.0 (iPod touch; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A365 Safari/600.1.4"
@@ -36,6 +40,7 @@ describe "Rack::UserAgent::Detector" do
36
40
  },
37
41
  {
38
42
  name: "Android",
43
+ os: "Android",
39
44
  version: "4.0.1",
40
45
  user_agents: [
41
46
  "Mozilla/5.0 (Linux; U; Android 4.0.1; ja-jp; Galaxy Nexus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
@@ -43,6 +48,7 @@ describe "Rack::UserAgent::Detector" do
43
48
  },
44
49
  {
45
50
  name: "Android",
51
+ os: "Android",
46
52
  version: "4.2.1",
47
53
  user_agents: [
48
54
  "Opera/9.80 (Android 4.2.1; Linux; Opera Mobi/ADR-1301080958) Presto/2.11.355 Version/12.10"
@@ -50,6 +56,7 @@ describe "Rack::UserAgent::Detector" do
50
56
  },
51
57
  {
52
58
  name: "Android",
59
+ os: "Android",
53
60
  version: nil,
54
61
  user_agents: [
55
62
  "Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0",
@@ -57,6 +64,7 @@ describe "Rack::UserAgent::Detector" do
57
64
  },
58
65
  {
59
66
  name: "Android Tablet",
67
+ os: "Android",
60
68
  version: "4.1.1",
61
69
  user_agents: [
62
70
  "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"
@@ -64,6 +72,7 @@ describe "Rack::UserAgent::Detector" do
64
72
  },
65
73
  {
66
74
  name: "Windows Phone",
75
+ os: "Windows Phone",
67
76
  version: "7.5",
68
77
  user_agents: [
69
78
  "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; FujitsuToshibaMobileCommun; IS12T; KDDI)"
@@ -146,6 +155,16 @@ describe "Rack::UserAgent::Detector" do
146
155
  end
147
156
  end
148
157
 
158
+ describe "#from_ios?" do
159
+ it "returns true if the request comes from ios" do
160
+ user_agents("iOS", key: :os).each do |ua|
161
+ header "User-Agent", ua
162
+ get "/"
163
+ last_request.from_ios?.must_equal true
164
+ end
165
+ end
166
+ end
167
+
149
168
  describe "#from_android?" do
150
169
  it "returns true if the request comes from android mobile" do
151
170
  user_agents("Android").each do |ua|
@@ -166,6 +185,16 @@ describe "Rack::UserAgent::Detector" do
166
185
  end
167
186
  end
168
187
 
188
+ describe "#from_android_os?" do
189
+ it "returns true if the request comes from android os" do
190
+ user_agents("Android", key: :os) .each do |ua|
191
+ header "User-Agent", ua
192
+ get "/"
193
+ last_request.from_android_os?.must_equal true
194
+ end
195
+ end
196
+ end
197
+
169
198
  describe "#from_windows_phone?" do
170
199
  it "returns true if the request comes from windows phone" do
171
200
  user_agents("Windows Phone").each do |ua|
@@ -176,7 +205,8 @@ describe "Rack::UserAgent::Detector" do
176
205
  end
177
206
  end
178
207
 
179
- def user_agents(name)
180
- SMARTPHONES.find { |info| info[:name] == name }[:user_agents]
208
+ def user_agents(word, key: :name)
209
+ SMARTPHONES.find_all { |info| info[key] == word }
210
+ .flat_map { |info| info[:user_agents]}
181
211
  end
182
212
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-user_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-19 00:00:00.000000000 Z
11
+ date: 2016-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project:
217
- rubygems_version: 2.4.5.1
217
+ rubygems_version: 2.5.1
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: Rack::Request extension for handling User-Agent.
@@ -224,4 +224,3 @@ test_files:
224
224
  - spec/lib/rack/user_agent/result_spec.rb
225
225
  - spec/lib/rack/user_agent_spec.rb
226
226
  - spec/spec_helper.rb
227
- has_rdoc: