agent_orange 0.1.2 → 0.1.3
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/.travis.yml +4 -0
- data/README.rdoc +8 -4
- data/lib/agent_orange/version.rb +1 -1
- data/lib/tasks/bot_agent_test.rake +1 -0
- data/spec/fixtures/browser_ids.htm +2246 -0
- data/spec/user_agent_spec.rb +53 -0
- metadata +49 -72
data/spec/user_agent_spec.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
require 'net/http'
|
3
|
+
require 'iconv'
|
2
4
|
|
3
5
|
describe AgentOrange::UserAgent do
|
4
6
|
|
@@ -82,4 +84,55 @@ describe AgentOrange::UserAgent do
|
|
82
84
|
end
|
83
85
|
end
|
84
86
|
|
87
|
+
describe 'checking with real browsers list' do
|
88
|
+
before do
|
89
|
+
@lists = [Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv( File.open("spec/fixtures/browser_ids.htm").read)]
|
90
|
+
|
91
|
+
begin
|
92
|
+
@lists.push Net::HTTP.get('www.zytrax.com', '/tech/web/browser_ids.htm')
|
93
|
+
rescue
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should parse browsers from list" do
|
98
|
+
[
|
99
|
+
{
|
100
|
+
:a_name => 'chrome',
|
101
|
+
:browser_names => ['Safari']
|
102
|
+
},
|
103
|
+
{
|
104
|
+
:a_name => 'safari',
|
105
|
+
:browser_names => ['Safari']
|
106
|
+
},
|
107
|
+
{
|
108
|
+
:a_name => 'firefox',
|
109
|
+
:browser_names => ['Firefox']
|
110
|
+
},
|
111
|
+
{
|
112
|
+
:a_name => 'msie',
|
113
|
+
:browser_names => ['MSIE','IEMobile']
|
114
|
+
},
|
115
|
+
{
|
116
|
+
:a_name => 'opera',
|
117
|
+
:browser_names => ['Opera']
|
118
|
+
}
|
119
|
+
].each do |params|
|
120
|
+
part = ''
|
121
|
+
|
122
|
+
@lists.each do |list|
|
123
|
+
part += list.scan(/<a name="#{params[:a_name]}">.+?<a name="/m).first.to_s
|
124
|
+
end
|
125
|
+
|
126
|
+
part.scan(/<p class="g-c-s">([^<]+)<\/p>/).each do |q|
|
127
|
+
ua = AgentOrange::UserAgent.new(q.first)
|
128
|
+
br_name = ua.device.engine.browser.name
|
129
|
+
|
130
|
+
params[:browser_names].should include(br_name)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
|
85
138
|
end
|
metadata
CHANGED
@@ -1,75 +1,59 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: agent_orange
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 2
|
10
|
-
version: 0.1.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Kevin Elliott
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-08 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rake
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70263619758660 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: rspec
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *70263619758660
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70263619755860 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
46
33
|
type: :development
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: bundler
|
50
34
|
prerelease: false
|
51
|
-
|
35
|
+
version_requirements: *70263619755860
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &70263619747260 !ruby/object:Gem::Requirement
|
52
39
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
60
44
|
type: :development
|
61
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70263619747260
|
62
47
|
description: Parse and process User Agents like a secret one
|
63
|
-
email:
|
48
|
+
email:
|
64
49
|
- kevin@welikeinc.com
|
65
|
-
executables:
|
50
|
+
executables:
|
66
51
|
- agent_orange_example
|
67
52
|
extensions: []
|
68
|
-
|
69
53
|
extra_rdoc_files: []
|
70
|
-
|
71
|
-
files:
|
54
|
+
files:
|
72
55
|
- .gitignore
|
56
|
+
- .travis.yml
|
73
57
|
- Gemfile
|
74
58
|
- README.rdoc
|
75
59
|
- Rakefile
|
@@ -86,43 +70,36 @@ files:
|
|
86
70
|
- lib/agent_orange/version.rb
|
87
71
|
- lib/tasks/allagents.xml
|
88
72
|
- lib/tasks/bot_agent_test.rake
|
73
|
+
- spec/fixtures/browser_ids.htm
|
89
74
|
- spec/spec_helper.rb
|
90
75
|
- spec/user_agent_matcher.rb
|
91
76
|
- spec/user_agent_spec.rb
|
92
77
|
homepage: http://github.com/kevinelliott/agent_orange
|
93
78
|
licenses: []
|
94
|
-
|
95
79
|
post_install_message:
|
96
80
|
rdoc_options: []
|
97
|
-
|
98
|
-
require_paths:
|
81
|
+
require_paths:
|
99
82
|
- lib
|
100
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
84
|
none: false
|
102
|
-
requirements:
|
103
|
-
- -
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
|
106
|
-
|
107
|
-
- 0
|
108
|
-
version: "0"
|
109
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
90
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
|
115
|
-
segments:
|
116
|
-
- 0
|
117
|
-
version: "0"
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
118
95
|
requirements: []
|
119
|
-
|
120
96
|
rubyforge_project: agent_orange
|
121
|
-
rubygems_version: 1.8.
|
97
|
+
rubygems_version: 1.8.10
|
122
98
|
signing_key:
|
123
99
|
specification_version: 3
|
124
100
|
summary: Parse and process User Agents like a secret one
|
125
|
-
test_files:
|
101
|
+
test_files:
|
102
|
+
- spec/fixtures/browser_ids.htm
|
126
103
|
- spec/spec_helper.rb
|
127
104
|
- spec/user_agent_matcher.rb
|
128
105
|
- spec/user_agent_spec.rb
|