mobileesp_converted 0.1.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.
@@ -0,0 +1,3 @@
1
+ module MobileESPConverted
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,5 @@
1
+ require "mobileesp_converted/version"
2
+ require "mobileesp_converted/u_agent_info"
3
+
4
+ module MobileESPConverted
5
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/mobileesp_converted/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Anthony Hand", "Jiří Stránský"]
6
+ gem.email = ["jistr@jistr.com"]
7
+ gem.description = %q{Autoconverted version (from Java to Ruby) of MobileESP library.}
8
+ gem.summary = %q{Provides device type detection based on HTTP request headers.}
9
+ gem.homepage = "http://github.com/jistr/mobileesp_converted"
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "mobileesp_converted"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = MobileESPConverted::VERSION
17
+
18
+ # == DEVELOPMENT DEPENDENCIES ==
19
+ # Smart irb
20
+ gem.add_development_dependency 'pry'
21
+
22
+ # Specs
23
+ gem.add_development_dependency 'minitest'
24
+ end
@@ -0,0 +1,111 @@
1
+ require_relative '../spec_helper'
2
+
3
+ module MobileESPConverted
4
+ class UAgentInfoSpec < MiniTest::Spec
5
+ describe UAgentInfo do
6
+ it "categorizes iPhone/Safari" do
7
+ uai = UAgentInfo.new("Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7", "text/html")
8
+ uai.is_tier_tablet.must_equal false
9
+ uai.is_tier_iphone.must_equal true
10
+ uai.is_tier_rich_css.must_equal false
11
+ uai.is_tier_generic_mobile.must_equal false
12
+ uai.detect_iphone.must_equal true
13
+ uai.detect_ipad.must_equal false
14
+ uai.detect_android_phone.must_equal false
15
+ uai.detect_android_tablet.must_equal false
16
+ end
17
+
18
+ it "categorizes iPad/Safari" do
19
+ uai = UAgentInfo.new("Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10", "text/html")
20
+ uai.detect_ipad.must_equal true
21
+ uai.is_iphone.must_equal false
22
+ uai.is_tier_tablet.must_equal true
23
+ uai.is_tier_iphone.must_equal false
24
+ uai.is_tier_rich_css.must_equal false
25
+ uai.is_tier_generic_mobile.must_equal false
26
+ uai.detect_iphone.must_equal false
27
+ uai.detect_ipad.must_equal true
28
+ uai.detect_android_phone.must_equal false
29
+ uai.detect_android_tablet.must_equal false
30
+ end
31
+
32
+ it "categorizes Android phone / Android Browser" do
33
+ # UA string for Google Nexus S
34
+ uai = UAgentInfo.new("Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", "text/html")
35
+ uai.is_tier_tablet.must_equal false
36
+ uai.is_tier_iphone.must_equal true
37
+ uai.is_tier_rich_css.must_equal false
38
+ uai.is_tier_generic_mobile.must_equal false
39
+ uai.detect_iphone.must_equal false
40
+ uai.detect_ipad.must_equal false
41
+ uai.detect_android_phone.must_equal true
42
+ uai.detect_android_tablet.must_equal false
43
+ end
44
+
45
+ it "categorizes Android tablet / Android Browser" do
46
+ # UA string for Motorola Xoom
47
+ uai = UAgentInfo.new("Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13", "text/html")
48
+ uai.is_tier_tablet.must_equal true
49
+ uai.is_tier_iphone.must_equal false
50
+ uai.is_tier_rich_css.must_equal false
51
+ uai.is_tier_generic_mobile.must_equal false
52
+ uai.detect_iphone.must_equal false
53
+ uai.detect_ipad.must_equal false
54
+ uai.detect_android_phone.must_equal false
55
+ uai.detect_android_tablet.must_equal true
56
+ end
57
+
58
+ it "categorizes Android / Opera Mobile" do
59
+ # Opera Mobile 12
60
+ uai = UAgentInfo.new("Opera/9.80 (Android 2.2.2; Linux; Opera Mobi/ADR-1202231246; U; en) Presto/2.10.254 Version/12.00", "text/html")
61
+ uai.is_tier_tablet.must_equal false
62
+ uai.is_tier_iphone.must_equal true
63
+ uai.is_tier_rich_css.must_equal false
64
+ uai.is_tier_generic_mobile.must_equal false
65
+ uai.detect_opera_mobile.must_equal true
66
+ uai.detect_iphone.must_equal false
67
+ uai.detect_ipad.must_equal false
68
+ uai.detect_android_phone.must_equal true
69
+ uai.detect_android_tablet.must_equal false
70
+ end
71
+
72
+ it "categorizes Linux/Chrome" do
73
+ uai = UAgentInfo.new("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11", "text/html")
74
+ uai.is_tier_tablet.must_equal false
75
+ uai.is_tier_iphone.must_equal false
76
+ uai.is_tier_rich_css.must_equal false
77
+ uai.is_tier_generic_mobile.must_equal false
78
+ uai.detect_iphone.must_equal false
79
+ uai.detect_ipad.must_equal false
80
+ uai.detect_android_phone.must_equal false
81
+ uai.detect_android_tablet.must_equal false
82
+ end
83
+
84
+ it "categorizes Windows/IE" do
85
+ # IE 9 on Windows 7
86
+ uai = UAgentInfo.new("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7)", "text/html")
87
+ uai.is_tier_tablet.must_equal false
88
+ uai.is_tier_iphone.must_equal false
89
+ uai.is_tier_rich_css.must_equal false
90
+ uai.is_tier_generic_mobile.must_equal false
91
+ uai.detect_iphone.must_equal false
92
+ uai.detect_ipad.must_equal false
93
+ uai.detect_android_phone.must_equal false
94
+ uai.detect_android_tablet.must_equal false
95
+ end
96
+
97
+ it "categorizes Mac/Safari" do
98
+ # Safari 5 on Snow Leopard
99
+ uai = UAgentInfo.new("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1", "text/html")
100
+ uai.is_tier_tablet.must_equal false
101
+ uai.is_tier_iphone.must_equal false
102
+ uai.is_tier_rich_css.must_equal false
103
+ uai.is_tier_generic_mobile.must_equal false
104
+ uai.detect_iphone.must_equal false
105
+ uai.detect_ipad.must_equal false
106
+ uai.detect_android_phone.must_equal false
107
+ uai.detect_android_tablet.must_equal false
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,4 @@
1
+ require 'minitest/spec'
2
+ require 'minitest/autorun'
3
+ begin; require 'turn'; rescue LoadError; end
4
+ require 'mobileesp_converted'
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mobileesp_converted
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Anthony Hand
9
+ - Jiří Stránský
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-03-12 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: pry
17
+ requirement: &22740900 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *22740900
26
+ - !ruby/object:Gem::Dependency
27
+ name: minitest
28
+ requirement: &22740460 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *22740460
37
+ description: Autoconverted version (from Java to Ruby) of MobileESP library.
38
+ email:
39
+ - jistr@jistr.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - .gitignore
45
+ - Gemfile
46
+ - README.md
47
+ - Rakefile
48
+ - convert_to_ruby.vim
49
+ - java_source/UAgentInfo.java
50
+ - lib/mobileesp_converted.rb
51
+ - lib/mobileesp_converted/u_agent_info.rb
52
+ - lib/mobileesp_converted/version.rb
53
+ - mobileesp_converted.gemspec
54
+ - spec/mobileesp_converted/u_agent_info_spec.rb
55
+ - spec/spec_helper.rb
56
+ homepage: http://github.com/jistr/mobileesp_converted
57
+ licenses: []
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ segments:
69
+ - 0
70
+ hash: 3561921582123639498
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ segments:
78
+ - 0
79
+ hash: 3561921582123639498
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 1.8.11
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Provides device type detection based on HTTP request headers.
86
+ test_files: []