aua 0.1.1 → 0.1.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/CHANGES.md +7 -1
- data/Gemfile.lock +1 -1
- data/lib/aua/version.rb +1 -1
- data/lib/aua.rb +15 -6
- data/spec/aua_spec.rb +20 -1
- metadata +2 -2
data/CHANGES.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
### dev
|
2
2
|
|
3
|
-
[full changelog](http://github.com/yolk/aua/compare/v0.1.
|
3
|
+
[full changelog](http://github.com/yolk/aua/compare/v0.1.2...master)
|
4
|
+
|
5
|
+
### 0.1.2 / 2011-01-28
|
6
|
+
|
7
|
+
[full changelog](http://github.com/yolk/aua/compare/v0.1.1...v0.1.2)
|
8
|
+
|
9
|
+
* Added support for unknown simple user agent string (e.g. my_app/1.0)
|
4
10
|
|
5
11
|
### 0.1.1 / 2011-01-28
|
6
12
|
|
data/Gemfile.lock
CHANGED
data/lib/aua/version.rb
CHANGED
data/lib/aua.rb
CHANGED
@@ -29,13 +29,22 @@ class Aua
|
|
29
29
|
attr_reader :version, :os_name, :os_version, :parts, :raw, :platform
|
30
30
|
|
31
31
|
def name
|
32
|
-
unknown?
|
32
|
+
@name unless unknown?
|
33
|
+
if simple?
|
34
|
+
app
|
35
|
+
else
|
36
|
+
raw
|
37
|
+
end
|
33
38
|
end
|
34
39
|
|
35
40
|
def type
|
36
41
|
@type || :Unknown
|
37
42
|
end
|
38
43
|
|
44
|
+
def version
|
45
|
+
@version ||= name ? version_of(name) : nil
|
46
|
+
end
|
47
|
+
|
39
48
|
def products
|
40
49
|
@products ||= parts.map{|p| p[0] }
|
41
50
|
end
|
@@ -77,16 +86,16 @@ class Aua
|
|
77
86
|
@os_string ||= comments.first && comments.first[2]
|
78
87
|
end
|
79
88
|
|
80
|
-
def version
|
81
|
-
@version ||= name ? version_of(name) : nil
|
82
|
-
end
|
83
|
-
|
84
89
|
def unknown?
|
85
90
|
type == :Unknown
|
86
91
|
end
|
87
92
|
|
93
|
+
def simple?
|
94
|
+
products.size == 1 && versions.size <= 1 && comments == [[]]
|
95
|
+
end
|
96
|
+
|
88
97
|
def to_s
|
89
|
-
return "Unknown: #{raw}" if unknown?
|
98
|
+
return "Unknown: #{raw}#{" (simple)" if simple?}" if unknown?
|
90
99
|
"#{type} #{name}/#{version} #{os_name}/#{os_version} #{platform}"
|
91
100
|
end
|
92
101
|
end
|
data/spec/aua_spec.rb
CHANGED
@@ -432,7 +432,7 @@ describe Aua do
|
|
432
432
|
its(:to_s) { should eql("Unknown: ")}
|
433
433
|
end
|
434
434
|
|
435
|
-
context "
|
435
|
+
context "standard user agent string" do
|
436
436
|
subject{ Aua.new("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13") }
|
437
437
|
|
438
438
|
its(:raw) { should eql("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13")}
|
@@ -478,4 +478,23 @@ describe Aua do
|
|
478
478
|
its(:os_version) { should eql(nil) }
|
479
479
|
its(:platform) { should eql(nil) }
|
480
480
|
end
|
481
|
+
|
482
|
+
context "unknown simple user agent string" do
|
483
|
+
subject{ Aua.new("my_mite_app/v1.0") }
|
484
|
+
|
485
|
+
its(:raw) { should eql("my_mite_app/v1.0")}
|
486
|
+
its(:products) { should eql(["my_mite_app"]) }
|
487
|
+
its(:versions) { should eql(["v1.0"]) }
|
488
|
+
its(:comments) { should eql([[]]) }
|
489
|
+
|
490
|
+
it{ should be_unknown }
|
491
|
+
its(:to_s) { should eql("Unknown: my_mite_app/v1.0 (simple)")}
|
492
|
+
|
493
|
+
its(:name) { should eql("my_mite_app") }
|
494
|
+
its(:type) { should eql(:Unknown) }
|
495
|
+
its(:version) { should eql("v1.0") }
|
496
|
+
its(:os_name) { should eql(nil) }
|
497
|
+
its(:os_version) { should eql(nil) }
|
498
|
+
its(:platform) { should eql(nil) }
|
499
|
+
end
|
481
500
|
end
|