webfontloader 1.4.2 → 1.4.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/CHANGELOG +3 -0
- data/lib/webfontloader.rb +1 -1
- data/spec/core/useragentparser_spec.js +204 -183
- data/spec/core/version_spec.js +143 -0
- data/spec/deps.js +2 -1
- data/spec/index.html +1 -0
- data/src/core/useragent.js +6 -6
- data/src/core/useragentparser.js +93 -149
- data/src/core/version.js +180 -0
- data/src/modules.yml +1 -0
- data/webfontloader.gemspec +4 -2
- metadata +6 -4
data/src/core/version.js
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
goog.provide('webfont.Version');
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Represents a version as used in user agent strings. Note
|
5
|
+
* that this does not represent any sort of reliable versioning
|
6
|
+
* scheme (like Semantic Versioning) but merely a best effort
|
7
|
+
* at parsing a large amount of wildly different version strings.
|
8
|
+
*
|
9
|
+
* @constructor
|
10
|
+
* @param {?number=} opt_major
|
11
|
+
* @param {?number=} opt_minor
|
12
|
+
* @param {?number=} opt_patch
|
13
|
+
* @param {?(number|string)=} opt_build
|
14
|
+
*/
|
15
|
+
webfont.Version = function(opt_major, opt_minor, opt_patch, opt_build) {
|
16
|
+
/**
|
17
|
+
* @type {?number}
|
18
|
+
*/
|
19
|
+
this.major = goog.isDefAndNotNull(opt_major) ? opt_major : null;
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @type {?number}
|
23
|
+
*/
|
24
|
+
this.minor = goog.isDefAndNotNull(opt_minor) ? opt_minor : null;
|
25
|
+
|
26
|
+
/**
|
27
|
+
* @type {?number}
|
28
|
+
*/
|
29
|
+
this.patch = goog.isDefAndNotNull(opt_patch) ? opt_patch : null;
|
30
|
+
|
31
|
+
/**
|
32
|
+
* @type {?(number|string)}
|
33
|
+
*/
|
34
|
+
this.build = goog.isDefAndNotNull(opt_build) ? opt_build : null;
|
35
|
+
}
|
36
|
+
|
37
|
+
goog.scope(function () {
|
38
|
+
var Version = webfont.Version;
|
39
|
+
|
40
|
+
Version.TOKENIZER = new RegExp(
|
41
|
+
"^" +
|
42
|
+
"([0-9]+)" + // major
|
43
|
+
"(?:" +
|
44
|
+
"[\\._-]([0-9]+)" + // minor
|
45
|
+
")?" +
|
46
|
+
"(?:" +
|
47
|
+
"[\\._-]([0-9]+)" + // patch
|
48
|
+
")?" +
|
49
|
+
"(?:" +
|
50
|
+
"[\\._+-]?(.*)" + // build
|
51
|
+
")?$"
|
52
|
+
);
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Returns true if the version is valid. A
|
56
|
+
* version is considered valid if it has at
|
57
|
+
* least a major version number.
|
58
|
+
*
|
59
|
+
* @return {boolean}
|
60
|
+
*/
|
61
|
+
Version.prototype.isValid = function () {
|
62
|
+
return !goog.isNull(this.major);
|
63
|
+
};
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Compares two versions. Returns -1 if this
|
67
|
+
* is smaller than version. Returns 1 if this
|
68
|
+
* is greater than version. Returns 0 if this
|
69
|
+
* equals version.
|
70
|
+
*
|
71
|
+
* Build strings or numbers are ignored when
|
72
|
+
* comparing versions.
|
73
|
+
*
|
74
|
+
* @param {webfont.Version} version
|
75
|
+
* @return {number}
|
76
|
+
*/
|
77
|
+
Version.prototype.compare = function (version) {
|
78
|
+
if (this.major > version.major ||
|
79
|
+
((this.major === version.major && this.minor > version.minor) ||
|
80
|
+
(this.major === version.major && this.minor === version.minor && this.patch > version.patch))) {
|
81
|
+
return 1;
|
82
|
+
} else if (this.major < version.major ||
|
83
|
+
((this.major === version.major && this.minor < version.minor) ||
|
84
|
+
(this.major === version.major && this.minor === version.minor && this.patch < version.patch))) {
|
85
|
+
return -1;
|
86
|
+
}
|
87
|
+
return 0;
|
88
|
+
};
|
89
|
+
|
90
|
+
/**
|
91
|
+
* @param {webfont.Version} version
|
92
|
+
* @return {boolean}
|
93
|
+
*/
|
94
|
+
Version.prototype.gt = function (version) {
|
95
|
+
return this.compare(version) === 1;
|
96
|
+
};
|
97
|
+
|
98
|
+
/**
|
99
|
+
* @param {webfont.Version} version
|
100
|
+
* @return {boolean}
|
101
|
+
*/
|
102
|
+
Version.prototype.lt = function (version) {
|
103
|
+
return this.compare(version) === -1;
|
104
|
+
};
|
105
|
+
|
106
|
+
/**
|
107
|
+
* @param {webfont.Version} version
|
108
|
+
* @return {boolean}
|
109
|
+
*/
|
110
|
+
Version.prototype.ge = function (version) {
|
111
|
+
return this.compare(version) === 0 || this.compare(version) === 1;
|
112
|
+
};
|
113
|
+
|
114
|
+
/**
|
115
|
+
* @param {webfont.Version} version
|
116
|
+
* @return {boolean}
|
117
|
+
*/
|
118
|
+
Version.prototype.le = function (version) {
|
119
|
+
return this.compare(version) === 0 || this.compare(version) === -1;
|
120
|
+
};
|
121
|
+
|
122
|
+
/**
|
123
|
+
* @param {webfont.Version} version
|
124
|
+
* @return {boolean}
|
125
|
+
*/
|
126
|
+
Version.prototype.eq = function (version) {
|
127
|
+
return this.compare(version) === 0;
|
128
|
+
};
|
129
|
+
|
130
|
+
/**
|
131
|
+
* @param {webfont.Version} version
|
132
|
+
* @return {boolean}
|
133
|
+
*/
|
134
|
+
Version.prototype.ne = function (version) {
|
135
|
+
return this.compare(version) !== 0;
|
136
|
+
};
|
137
|
+
|
138
|
+
/**
|
139
|
+
* @return {string}
|
140
|
+
*/
|
141
|
+
Version.prototype.toString = function () {
|
142
|
+
return [this.major, this.minor || '', this.patch || '', this.build || ''].join('');
|
143
|
+
};
|
144
|
+
|
145
|
+
/**
|
146
|
+
* @param {string} str
|
147
|
+
* @return {!webfont.Version}
|
148
|
+
*/
|
149
|
+
Version.parse = function (str) {
|
150
|
+
var match = Version.TOKENIZER.exec(str),
|
151
|
+
major = null,
|
152
|
+
minor = null,
|
153
|
+
patch = null,
|
154
|
+
build = null;
|
155
|
+
|
156
|
+
if (match) {
|
157
|
+
if (!goog.isNull(match[1]) && !!match[1]) {
|
158
|
+
major = parseInt(match[1], 10);
|
159
|
+
}
|
160
|
+
|
161
|
+
if (!goog.isNull(match[2]) && !!match[2]) {
|
162
|
+
minor = parseInt(match[2], 10);
|
163
|
+
}
|
164
|
+
|
165
|
+
if (!goog.isNull(match[3]) && !!match[3]) {
|
166
|
+
patch = parseInt(match[3], 10);
|
167
|
+
}
|
168
|
+
|
169
|
+
if (!goog.isNull(match[4]) && !!match[4]) {
|
170
|
+
if (/^[0-9]+$/.test(match[4])) {
|
171
|
+
build = parseInt(match[4], 10);
|
172
|
+
} else {
|
173
|
+
build = match[4];
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
return new Version(major, minor, patch, build);
|
179
|
+
};
|
180
|
+
});
|
data/src/modules.yml
CHANGED
data/webfontloader.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'webfontloader'
|
16
|
-
s.version = '1.4.
|
17
|
-
s.date = '2013-
|
16
|
+
s.version = '1.4.3'
|
17
|
+
s.date = '2013-05-16'
|
18
18
|
|
19
19
|
## Make sure your summary is short. The description may be as long
|
20
20
|
## as you like.
|
@@ -119,6 +119,7 @@ DESC
|
|
119
119
|
spec/core/fontwatchrunner_spec.js
|
120
120
|
spec/core/size_spec.js
|
121
121
|
spec/core/useragentparser_spec.js
|
122
|
+
spec/core/version_spec.js
|
122
123
|
spec/core/webfont_spec.js
|
123
124
|
spec/custom/customcss_spec.js
|
124
125
|
spec/deps.js
|
@@ -161,6 +162,7 @@ DESC
|
|
161
162
|
src/core/namespace.js
|
162
163
|
src/core/useragent.js
|
163
164
|
src/core/useragentparser.js
|
165
|
+
src/core/version.js
|
164
166
|
src/core/webfont.js
|
165
167
|
src/custom/customcss.js
|
166
168
|
src/fontdeck/fontdeck_script.js
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webfontloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 3
|
10
|
+
version: 1.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Carver
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2013-
|
19
|
+
date: 2013-05-16 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rake
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- spec/core/fontwatchrunner_spec.js
|
151
151
|
- spec/core/size_spec.js
|
152
152
|
- spec/core/useragentparser_spec.js
|
153
|
+
- spec/core/version_spec.js
|
153
154
|
- spec/core/webfont_spec.js
|
154
155
|
- spec/custom/customcss_spec.js
|
155
156
|
- spec/deps.js
|
@@ -192,6 +193,7 @@ files:
|
|
192
193
|
- src/core/namespace.js
|
193
194
|
- src/core/useragent.js
|
194
195
|
- src/core/useragentparser.js
|
196
|
+
- src/core/version.js
|
195
197
|
- src/core/webfont.js
|
196
198
|
- src/custom/customcss.js
|
197
199
|
- src/fontdeck/fontdeck_script.js
|