fast_woothee 1.4.3 → 1.4.4
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 +4 -4
- data/Cargo.lock +5 -5
- data/Cargo.toml +1 -1
- data/README.md +10 -0
- data/fast_woothee.gemspec +2 -2
- data/src/lib.rs +24 -3
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1076f8ee01ec70e75ace3bc424dab28a7fb5d569bf013a6eb7abfc0a2a4b6091
|
4
|
+
data.tar.gz: f429a9f3a14a46b96dcacc8965596c7bae44b737885fd64d3304f569ac7969ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6b0b73032ac8da0dc9f39517a43679b934095859640c3976f129686703f50ddfe9597b9d8994c6856e8979920e99e8417a7e1d70418e4eba231619b2b497618
|
7
|
+
data.tar.gz: 86ddbfd03367e1d8a08d521e0d4a88fce8f41356b7808991fd7f25c5f621b11b0373857f31b5222d5662aa943a1e0101da6301f1c769ff22b26bc710256a9d3b
|
data/Cargo.lock
CHANGED
@@ -8,10 +8,10 @@ dependencies = [
|
|
8
8
|
|
9
9
|
[[package]]
|
10
10
|
name = "fast_woothee"
|
11
|
-
version = "1.4.
|
11
|
+
version = "1.4.4"
|
12
12
|
dependencies = [
|
13
13
|
"ruru 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
14
|
-
"woothee 0.
|
14
|
+
"woothee 0.9.0 (git+https://github.com/woothee/woothee-rust)",
|
15
15
|
]
|
16
16
|
|
17
17
|
[[package]]
|
@@ -91,8 +91,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
91
91
|
|
92
92
|
[[package]]
|
93
93
|
name = "woothee"
|
94
|
-
version = "0.
|
95
|
-
source = "git+https://github.com/woothee/woothee-rust#
|
94
|
+
version = "0.9.0"
|
95
|
+
source = "git+https://github.com/woothee/woothee-rust#f98a1c36365f733d7815eb28a3f5e175b30601bb"
|
96
96
|
dependencies = [
|
97
97
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
98
98
|
"regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
@@ -111,4 +111,4 @@ dependencies = [
|
|
111
111
|
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
|
112
112
|
"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
|
113
113
|
"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
|
114
|
-
"checksum woothee 0.
|
114
|
+
"checksum woothee 0.9.0 (git+https://github.com/woothee/woothee-rust)" = "<none>"
|
data/Cargo.toml
CHANGED
data/README.md
CHANGED
@@ -31,6 +31,16 @@ FastWoothee.parse 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) Appl
|
|
31
31
|
# {:name=>"Webview", :category=>"smartphone", :os=>"iPad", :os_version=>"3.2.1", :browser_type=>"browser", :version=>"UNKNOWN", :vendor=>"OS vendor"}
|
32
32
|
```
|
33
33
|
|
34
|
+
```ruby
|
35
|
+
# Determine if it is a crawler
|
36
|
+
FastWoothee.crawler?("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html") # => true
|
37
|
+
```
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
# Is the user on iOS?
|
41
|
+
FastWoothee.ios?("Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B411 Safari/600.1.4") # => true
|
42
|
+
```
|
43
|
+
|
34
44
|
## Benchmarks
|
35
45
|
|
36
46
|
```
|
data/fast_woothee.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'fast_woothee'
|
8
|
-
spec.version = '1.4.
|
8
|
+
spec.version = '1.4.4'
|
9
9
|
spec.authors = ['Ian Ker-Seymer']
|
10
10
|
spec.email = ['i.kerseymer@gmail.com']
|
11
11
|
|
@@ -22,7 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
spec.extensions = ['Rakefile']
|
24
24
|
|
25
|
-
spec.add_runtime_dependency 'thermite', '~> 0'
|
26
25
|
|
27
26
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
28
27
|
spec.add_development_dependency 'ffi', '~> 1.9'
|
@@ -31,4 +30,5 @@ Gem::Specification.new do |spec|
|
|
31
30
|
spec.add_development_dependency 'rake', '~> 10.0'
|
32
31
|
spec.add_development_dependency 'rake-compiler'
|
33
32
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
33
|
+
spec.add_development_dependency 'thermite', '~> 0'
|
34
34
|
end
|
data/src/lib.rs
CHANGED
@@ -34,16 +34,37 @@ methods!(
|
|
34
34
|
methods!(
|
35
35
|
FastWoothee,
|
36
36
|
_itself,
|
37
|
-
fn
|
37
|
+
fn is_crawler(ua_string: RString) -> Boolean {
|
38
38
|
Boolean::new(woothee::is_crawler(ua_string.unwrap_or(RString::new("")).to_str()))
|
39
39
|
}
|
40
40
|
);
|
41
41
|
|
42
|
+
methods!(
|
43
|
+
FastWoothee,
|
44
|
+
_itself,
|
45
|
+
fn is_ios(ua_string: RString) -> Boolean {
|
46
|
+
let parser = Parser::new();
|
47
|
+
|
48
|
+
match parser.parse(ua_string.unwrap_or(RString::new("")).to_str()) {
|
49
|
+
None => Boolean::new(false),
|
50
|
+
Some(result) => {
|
51
|
+
match result.os {
|
52
|
+
"iPod" => Boolean::new(true),
|
53
|
+
"iPad" => Boolean::new(true),
|
54
|
+
"iPhone" => Boolean::new(true),
|
55
|
+
_ => Boolean::new(false)
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
);
|
61
|
+
|
42
62
|
#[no_mangle]
|
43
63
|
pub extern fn initialize_fast_woothee() {
|
44
64
|
Class::new("FastWoothee", None).define(|itself| {
|
45
|
-
itself.const_set("VERSION", &RString::new("1.4.
|
65
|
+
itself.const_set("VERSION", &RString::new("1.4.4").freeze());
|
46
66
|
itself.def_self("parse", parse);
|
47
|
-
itself.def_self("crawler?",
|
67
|
+
itself.def_self("crawler?", is_crawler);
|
68
|
+
itself.def_self("ios?", is_ios);
|
48
69
|
});
|
49
70
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fast_woothee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Ker-Seymer
|
@@ -10,20 +10,6 @@ bindir: exe
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2019-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: thermite
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: bundler
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +108,20 @@ dependencies:
|
|
122
108
|
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '3.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: thermite
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
125
|
description: Ruby bindings to woothee-rust
|
126
126
|
email:
|
127
127
|
- i.kerseymer@gmail.com
|