yellow-brick-road 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rst +10 -5
- data/lib/yellow-brick-road/directive_processor.rb +10 -3
- data/lib/yellow-brick-road/version.rb +1 -1
- data/test/dummy/app/assets/javascripts/closure-deps.js +3 -3
- data/test/dummy/log/development.log +159 -0
- data/test/dummy/tmp/cache/assets/C1E/0C0/sprockets%2F9c2f7430126aff8d8514326208712832 +165 -0
- data/test/dummy/tmp/cache/assets/C29/5D0/sprockets%2F1498f4451d0836a53c7c302c49920996 +0 -0
- data/test/dummy/tmp/cache/assets/C7E/9F0/sprockets%2F89862076204c62c4593ac20de32da909 +6 -6
- data/test/dummy/tmp/cache/assets/CB4/5B0/sprockets%2Ff17618b71eca9a4621f68626572a75b2 +103 -0
- data/test/dummy/tmp/cache/assets/CC2/240/sprockets%2F9f41da672330830c3366594f7ff5e7f6 +590 -0
- data/test/dummy/tmp/cache/assets/CC4/2C0/sprockets%2F715db78c7d974ea64406ed9711793f42 +494 -0
- data/test/dummy/tmp/cache/assets/CE1/610/sprockets%2F50c01109ecf86153176ccf577595fab4 +53 -0
- data/test/dummy/tmp/cache/assets/CE1/C20/sprockets%2F58a7b0499656c97a2204b5821eadab84 +207 -0
- data/test/dummy/tmp/cache/assets/CE4/DE0/sprockets%2Fb3aab0604ee02598f339965ec583a746 +204 -0
- data/test/dummy/tmp/cache/assets/CE9/B00/sprockets%2F80b139f66661444d6a781bfe56aee076 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/840/sprockets%2F38fe57c2a5963f36a49404f672cc707b +0 -0
- data/test/dummy/tmp/cache/assets/CEC/6C0/sprockets%2F01b982295748dbd09683557aebd358bd +0 -0
- data/test/dummy/tmp/cache/assets/CF0/140/sprockets%2F3974b046fe949e86ef851a0271eb9d50 +1545 -0
- data/test/dummy/tmp/cache/assets/D01/DF0/sprockets%2F2ce268622b41a173bb209465a2ced6b9 +806 -0
- data/test/dummy/tmp/cache/assets/D05/920/sprockets%2F909507434dcc270db4853e4c147f0aac +4 -5
- data/test/dummy/tmp/cache/assets/D0A/C10/sprockets%2Fd050d5ee6a2073aa708a26c589a4c974 +283 -0
- data/test/dummy/tmp/cache/assets/D0F/360/sprockets%2Fa18927874a5e02c58c14c5b5df19ec04 +300 -0
- data/test/dummy/tmp/cache/assets/D15/700/sprockets%2F2987192f402d2bdc72792b5ae17f9a2f +142 -0
- data/test/dummy/tmp/cache/assets/D15/F60/sprockets%2Fa28394e3f80365b5bc86794dd46daa22 +0 -0
- data/test/dummy/tmp/cache/assets/D1F/E60/sprockets%2Fe65796b72231e36f5573ce71e2c8bbf8 +511 -0
- data/test/dummy/tmp/cache/assets/D22/200/sprockets%2F874bd1079c304ae88fbec8434d6d7794 +187 -0
- data/test/dummy/tmp/cache/assets/D3B/6A0/sprockets%2Ff8a978a3672b4f7ba513303b91ad15fc +127 -0
- data/test/dummy/tmp/cache/assets/D3C/530/sprockets%2Fe6730ff143273d9a7471b4afc3e1c19d +0 -0
- data/test/dummy/tmp/cache/assets/D41/B30/sprockets%2Fba1b93913dd01d83ac9a96df334456f8 +0 -0
- data/test/dummy/tmp/cache/assets/D49/570/sprockets%2Fd76be81d59871518ea06d3668f2c4bbb +239 -0
- data/test/dummy/tmp/cache/assets/D49/DA0/sprockets%2Fa84f85a305cde80a4d53785d7be0892f +457 -0
- data/test/dummy/tmp/cache/assets/D5C/760/sprockets%2F5cd491e0f9106cfd4ec4938896c97de7 +256 -0
- data/test/dummy/tmp/cache/assets/D5C/A00/sprockets%2Fefe291b3012745251e2641defbe4cad0 +1529 -0
- data/test/dummy/tmp/cache/assets/D68/2B0/sprockets%2Fe51ab0aca893e08c40f9672edef71106 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/EA0/sprockets%2Fb52cbc47414c9e60ad4c46824928fbbe +115 -0
- data/test/dummy/tmp/cache/assets/D70/0B0/sprockets%2F1ae574bacfb86b4d51281b5e47fe1892 +505 -0
- data/test/dummy/tmp/cache/assets/D75/A60/sprockets%2Fab64285176f11f975fb6bb40af8bce76 +0 -0
- data/test/dummy/tmp/cache/assets/D76/0A0/sprockets%2F3ad3bd078c47096b34d5bcce886d7b47 +794 -0
- data/test/dummy/tmp/cache/assets/D79/C00/sprockets%2F94449fa386c370a1ebd7628eba9afe72 +72 -0
- data/test/dummy/tmp/cache/assets/D7B/310/sprockets%2Ff56e44be18b2d65efda80e588e5229a4 +0 -0
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +7 -8
- data/test/dummy/tmp/cache/assets/D95/D20/sprockets%2F05b19351f203fb1eadf8ef1f0e6f9a60 +173 -0
- data/test/dummy/tmp/cache/assets/D9F/250/sprockets%2F40dcbb8f852f0e6360c4afb1f39964eb +0 -0
- data/test/dummy/tmp/cache/assets/DA8/0E0/sprockets%2F1351359f5bbdb94ef7d247df9af38bd1 +2556 -0
- data/test/dummy/tmp/cache/assets/DB3/070/sprockets%2Fd98f91680433cec456e6eb7485dcfdbc +522 -0
- data/test/dummy/tmp/cache/assets/DC4/6E0/sprockets%2F72117f09fccb98e6aac4cd1124edae42 +2539 -0
- data/test/dummy/tmp/cache/assets/DCC/D50/sprockets%2F9b2b027991c15af6f8afeacdd183c14e +1260 -0
- data/test/dummy/tmp/cache/assets/DD9/FF0/sprockets%2Fdf5dcfe86e199b272742a52a4b7e5fbd +823 -0
- data/test/dummy/tmp/cache/assets/DE7/0D0/sprockets%2Fe4d9fe29b6d96cdeb070d9b595af83d7 +1354 -0
- data/test/dummy/tmp/cache/assets/E00/3A0/sprockets%2Fc1db8cbfbc94bd2736f9f067a4c06cc7 +811 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E0C/C80/sprockets%2F55805edb5f27aaef88eef6632fd08ade +1277 -0
- data/test/dummy/tmp/cache/assets/E1B/CF0/sprockets%2Feb58b29b94f29d7da8d9fbe666e4a8dd +474 -0
- data/test/dummy/tmp/cache/assets/E1E/E00/sprockets%2Fb005d4fa3dc6cfc1c5098e0fdb3f6b2b +1371 -0
- data/test/dummy/tmp/cache/assets/E30/8E0/sprockets%2Fef4fdb83b3eefb027cbc8e19b274ec80 +607 -0
- metadata +96 -8
@@ -0,0 +1,53 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729947.411097:@value{ I"length:EFi'I"digest;
|
2
|
+
F"%7a6497e7495bae188e28a192999ef59eI"source;
|
3
|
+
FI"'// Copyright 2009 The Closure Library Authors. All Rights Reserved.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS-IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @fileoverview Provides a base class for custom Error objects such that the
|
19
|
+
* stack is correctly maintained.
|
20
|
+
*
|
21
|
+
* You should never need to throw goog.debug.Error(msg) directly, Error(msg) is
|
22
|
+
* sufficient.
|
23
|
+
*
|
24
|
+
*/
|
25
|
+
|
26
|
+
|
27
|
+
goog.provide('goog.debug.Error');
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Base class for custom error objects.
|
33
|
+
* @param {*=} opt_msg The message associated with the error.
|
34
|
+
* @constructor
|
35
|
+
* @extends {Error}
|
36
|
+
*/
|
37
|
+
goog.debug.Error = function(opt_msg) {
|
38
|
+
|
39
|
+
// Ensure there is a stack trace.
|
40
|
+
this.stack = new Error().stack || '';
|
41
|
+
|
42
|
+
if (opt_msg) {
|
43
|
+
this.message = String(opt_msg);
|
44
|
+
}
|
45
|
+
};
|
46
|
+
goog.inherits(goog.debug.Error, Error);
|
47
|
+
|
48
|
+
|
49
|
+
/** @override */
|
50
|
+
goog.debug.Error.prototype.name = 'CustomError';
|
51
|
+
;
|
52
|
+
FI"
|
53
|
+
F"%f56cfa0ae71202e7f8fb7591333ba88a
|
@@ -0,0 +1,207 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729947.619143:@value{ I"length:EFiZI"digest;
|
2
|
+
F"%8c2d22494dd0aa3e8ef0c069f9be749eI"source;
|
3
|
+
FI"Z// Copyright 2007 The Closure Library Authors. All Rights Reserved.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS-IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @fileoverview A utility class for representing two-dimensional sizes.
|
19
|
+
*/
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
goog.provide('goog.math.Size');
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Class for representing sizes consisting of a width and height. Undefined
|
29
|
+
* width and height support is deprecated and results in compiler warning.
|
30
|
+
* @param {number} width Width.
|
31
|
+
* @param {number} height Height.
|
32
|
+
* @constructor
|
33
|
+
*/
|
34
|
+
goog.math.Size = function(width, height) {
|
35
|
+
/**
|
36
|
+
* Width
|
37
|
+
* @type {number}
|
38
|
+
*/
|
39
|
+
this.width = width;
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Height
|
43
|
+
* @type {number}
|
44
|
+
*/
|
45
|
+
this.height = height;
|
46
|
+
};
|
47
|
+
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Compares sizes for equality.
|
51
|
+
* @param {goog.math.Size} a A Size.
|
52
|
+
* @param {goog.math.Size} b A Size.
|
53
|
+
* @return {boolean} True iff the sizes have equal widths and equal
|
54
|
+
* heights, or if both are null.
|
55
|
+
*/
|
56
|
+
goog.math.Size.equals = function(a, b) {
|
57
|
+
if (a == b) {
|
58
|
+
return true;
|
59
|
+
}
|
60
|
+
if (!a || !b) {
|
61
|
+
return false;
|
62
|
+
}
|
63
|
+
return a.width == b.width && a.height == b.height;
|
64
|
+
};
|
65
|
+
|
66
|
+
|
67
|
+
/**
|
68
|
+
* @return {!goog.math.Size} A new copy of the Size.
|
69
|
+
*/
|
70
|
+
goog.math.Size.prototype.clone = function() {
|
71
|
+
return new goog.math.Size(this.width, this.height);
|
72
|
+
};
|
73
|
+
|
74
|
+
|
75
|
+
if (goog.DEBUG) {
|
76
|
+
/**
|
77
|
+
* Returns a nice string representing size.
|
78
|
+
* @return {string} In the form (50 x 73).
|
79
|
+
*/
|
80
|
+
goog.math.Size.prototype.toString = function() {
|
81
|
+
return '(' + this.width + ' x ' + this.height + ')';
|
82
|
+
};
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
/**
|
87
|
+
* @return {number} The longer of the two dimensions in the size.
|
88
|
+
*/
|
89
|
+
goog.math.Size.prototype.getLongest = function() {
|
90
|
+
return Math.max(this.width, this.height);
|
91
|
+
};
|
92
|
+
|
93
|
+
|
94
|
+
/**
|
95
|
+
* @return {number} The shorter of the two dimensions in the size.
|
96
|
+
*/
|
97
|
+
goog.math.Size.prototype.getShortest = function() {
|
98
|
+
return Math.min(this.width, this.height);
|
99
|
+
};
|
100
|
+
|
101
|
+
|
102
|
+
/**
|
103
|
+
* @return {number} The area of the size (width * height).
|
104
|
+
*/
|
105
|
+
goog.math.Size.prototype.area = function() {
|
106
|
+
return this.width * this.height;
|
107
|
+
};
|
108
|
+
|
109
|
+
|
110
|
+
/**
|
111
|
+
* @return {number} The perimeter of the size (width + height) * 2.
|
112
|
+
*/
|
113
|
+
goog.math.Size.prototype.perimeter = function() {
|
114
|
+
return (this.width + this.height) * 2;
|
115
|
+
};
|
116
|
+
|
117
|
+
|
118
|
+
/**
|
119
|
+
* @return {number} The ratio of the size's width to its height.
|
120
|
+
*/
|
121
|
+
goog.math.Size.prototype.aspectRatio = function() {
|
122
|
+
return this.width / this.height;
|
123
|
+
};
|
124
|
+
|
125
|
+
|
126
|
+
/**
|
127
|
+
* @return {boolean} True if the size has zero area, false if both dimensions
|
128
|
+
* are non-zero numbers.
|
129
|
+
*/
|
130
|
+
goog.math.Size.prototype.isEmpty = function() {
|
131
|
+
return !this.area();
|
132
|
+
};
|
133
|
+
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Clamps the width and height parameters upward to integer values.
|
137
|
+
* @return {!goog.math.Size} This size with ceil'd components.
|
138
|
+
*/
|
139
|
+
goog.math.Size.prototype.ceil = function() {
|
140
|
+
this.width = Math.ceil(this.width);
|
141
|
+
this.height = Math.ceil(this.height);
|
142
|
+
return this;
|
143
|
+
};
|
144
|
+
|
145
|
+
|
146
|
+
/**
|
147
|
+
* @param {!goog.math.Size} target The target size.
|
148
|
+
* @return {boolean} True if this Size is the same size or smaller than the
|
149
|
+
* target size in both dimensions.
|
150
|
+
*/
|
151
|
+
goog.math.Size.prototype.fitsInside = function(target) {
|
152
|
+
return this.width <= target.width && this.height <= target.height;
|
153
|
+
};
|
154
|
+
|
155
|
+
|
156
|
+
/**
|
157
|
+
* Clamps the width and height parameters downward to integer values.
|
158
|
+
* @return {!goog.math.Size} This size with floored components.
|
159
|
+
*/
|
160
|
+
goog.math.Size.prototype.floor = function() {
|
161
|
+
this.width = Math.floor(this.width);
|
162
|
+
this.height = Math.floor(this.height);
|
163
|
+
return this;
|
164
|
+
};
|
165
|
+
|
166
|
+
|
167
|
+
/**
|
168
|
+
* Rounds the width and height parameters to integer values.
|
169
|
+
* @return {!goog.math.Size} This size with rounded components.
|
170
|
+
*/
|
171
|
+
goog.math.Size.prototype.round = function() {
|
172
|
+
this.width = Math.round(this.width);
|
173
|
+
this.height = Math.round(this.height);
|
174
|
+
return this;
|
175
|
+
};
|
176
|
+
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Scales the size uniformly by a factor.
|
180
|
+
* @param {number} s The scale factor.
|
181
|
+
* @return {!goog.math.Size} This Size object after scaling.
|
182
|
+
*/
|
183
|
+
goog.math.Size.prototype.scale = function(s) {
|
184
|
+
this.width *= s;
|
185
|
+
this.height *= s;
|
186
|
+
return this;
|
187
|
+
};
|
188
|
+
|
189
|
+
|
190
|
+
/**
|
191
|
+
* Uniformly scales the size to fit inside the dimensions of a given size. The
|
192
|
+
* original aspect ratio will be preserved.
|
193
|
+
*
|
194
|
+
* This function assumes that both Sizes contain strictly positive dimensions.
|
195
|
+
* @param {!goog.math.Size} target The target size.
|
196
|
+
* @return {!goog.math.Size} This Size object, after optional scaling.
|
197
|
+
*/
|
198
|
+
goog.math.Size.prototype.scaleToFit = function(target) {
|
199
|
+
var s = this.aspectRatio() > target.aspectRatio() ?
|
200
|
+
target.width / this.width :
|
201
|
+
target.height / this.height;
|
202
|
+
|
203
|
+
return this.scale(s);
|
204
|
+
};
|
205
|
+
;
|
206
|
+
FI"
|
207
|
+
F"%5d2fe0ce8f60cabd2b4f58a9d81e87b5
|
@@ -0,0 +1,204 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729947.93457:@value{I"
|
2
|
+
class:EFI"BundledAsset;
|
3
|
+
FI"id;
|
4
|
+
F"%90f76c5c419ba0672ad91e398fc35969I"logical_path;
|
5
|
+
FI"'closure/goog/i18n/graphemebreak.js;
|
6
|
+
TI"
|
7
|
+
F"�/Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library/closure/goog/i18n/graphemebreak.jsI"content_type;
|
8
|
+
FI"application/javascript;
|
9
|
+
FI"
|
10
|
+
mtime;
|
11
|
+
FI"2012-01-03T00:52:24+00:00;
|
12
|
+
FI" body;
|
13
|
+
FI"�// Copyright 2006 The Closure Library Authors. All Rights Reserved.
|
14
|
+
//
|
15
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
16
|
+
// you may not use this file except in compliance with the License.
|
17
|
+
// You may obtain a copy of the License at
|
18
|
+
//
|
19
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
20
|
+
//
|
21
|
+
// Unless required by applicable law or agreed to in writing, software
|
22
|
+
// distributed under the License is distributed on an "AS-IS" BASIS,
|
23
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
24
|
+
// See the License for the specific language governing permissions and
|
25
|
+
// limitations under the License.
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @fileoverview Detect Grapheme Cluster Break in a pair of codepoints. Follows
|
29
|
+
* Unicode 5.1 UAX#29.
|
30
|
+
*
|
31
|
+
*/
|
32
|
+
|
33
|
+
|
34
|
+
goog.provide('goog.i18n.GraphemeBreak');
|
35
|
+
goog.require('goog.structs.InversionMap');
|
36
|
+
|
37
|
+
|
38
|
+
/**
|
39
|
+
* Enum for all Grapheme Cluster Break properties.
|
40
|
+
* These enums directly corresponds to Grapheme_Cluster_Break property values
|
41
|
+
* mentioned in http://unicode.org/reports/tr29 table 2.
|
42
|
+
*
|
43
|
+
* CR and LF are moved to the bottom of the list because they occur only once
|
44
|
+
* and so good candidates to take 2 decimal digit values.
|
45
|
+
* @enum {number}
|
46
|
+
* @protected
|
47
|
+
*/
|
48
|
+
goog.i18n.GraphemeBreak.property = {
|
49
|
+
ANY: 0,
|
50
|
+
CONTROL: 1,
|
51
|
+
EXTEND: 2,
|
52
|
+
PREPEND: 3,
|
53
|
+
SPACING_MARK: 4,
|
54
|
+
L: 5,
|
55
|
+
V: 6,
|
56
|
+
T: 7,
|
57
|
+
LV: 8,
|
58
|
+
LVT: 9,
|
59
|
+
CR: 10,
|
60
|
+
LF: 11
|
61
|
+
};
|
62
|
+
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Grapheme Cluster Break property values for all codepoints as inversion map.
|
66
|
+
* Constructed lazily.
|
67
|
+
*
|
68
|
+
* @type {goog.structs.InversionMap}
|
69
|
+
* @private
|
70
|
+
*/
|
71
|
+
goog.i18n.GraphemeBreak.inversions_ = null;
|
72
|
+
|
73
|
+
|
74
|
+
/**
|
75
|
+
* There are two kinds of grapheme clusters: 1) Legacy 2)Extended. This method
|
76
|
+
* is to check for legacy rules.
|
77
|
+
*
|
78
|
+
* @param {number} prop_a The property enum value of the first character.
|
79
|
+
* @param {number} prop_b The property enum value of the second character.
|
80
|
+
* @return {boolean} True if a & b do not form a cluster; False otherwise.
|
81
|
+
* @private
|
82
|
+
*/
|
83
|
+
goog.i18n.GraphemeBreak.applyLegacyBreakRules_ = function(prop_a, prop_b) {
|
84
|
+
|
85
|
+
var prop = goog.i18n.GraphemeBreak.property;
|
86
|
+
|
87
|
+
if (prop_a == prop.CR && prop_b == prop.LF) {
|
88
|
+
return false;
|
89
|
+
}
|
90
|
+
if (prop_a == prop.CONTROL || prop_a == prop.CR || prop_a == prop.LF) {
|
91
|
+
return true;
|
92
|
+
}
|
93
|
+
if (prop_b == prop.CONTROL || prop_b == prop.CR || prop_b == prop.LF) {
|
94
|
+
return true;
|
95
|
+
}
|
96
|
+
if ((prop_a == prop.L) &&
|
97
|
+
(prop_b == prop.L || prop_b == prop.V ||
|
98
|
+
prop_b == prop.LV || prop_b == prop.LVT)) {
|
99
|
+
return false;
|
100
|
+
}
|
101
|
+
if ((prop_a == prop.LV || prop_a == prop.V) &&
|
102
|
+
(prop_b == prop.V || prop_b == prop.T)) {
|
103
|
+
return false;
|
104
|
+
}
|
105
|
+
if ((prop_a == prop.LVT || prop_a == prop.T) && (prop_b == prop.T)) {
|
106
|
+
return false;
|
107
|
+
}
|
108
|
+
if (prop_b == prop.EXTEND) {
|
109
|
+
return false;
|
110
|
+
}
|
111
|
+
return true;
|
112
|
+
};
|
113
|
+
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Method to return property enum value of the codepoint. If it is Hangul LV or
|
117
|
+
* LVT, then it is computed; for the rest it is picked from the inversion map.
|
118
|
+
* @param {number} acode The code point value of the character.
|
119
|
+
* @return {number} Property enum value of codepoint.
|
120
|
+
* @private
|
121
|
+
*/
|
122
|
+
goog.i18n.GraphemeBreak.getBreakProp_ = function(acode) {
|
123
|
+
if (0xAC00 <= acode && acode <= 0xD7A3) {
|
124
|
+
var prop = goog.i18n.GraphemeBreak.property;
|
125
|
+
if (acode % 0x1C == 0x10) {
|
126
|
+
return prop.LV;
|
127
|
+
}
|
128
|
+
return prop.LVT;
|
129
|
+
} else {
|
130
|
+
if (!goog.i18n.GraphemeBreak.inversions_) {
|
131
|
+
goog.i18n.GraphemeBreak.inversions_ = new goog.structs.InversionMap(
|
132
|
+
[0, 10, 1, 2, 1, 18, 95, 33, 13, 1, 594, 112, 275, 7, 263, 45, 1, 1,
|
133
|
+
1, 2, 1, 2, 1, 1, 56, 4, 12, 11, 48, 20, 17, 1, 101, 7, 1, 7, 2, 2,
|
134
|
+
1, 4, 33, 1, 1, 1, 30, 27, 91, 11, 58, 9, 269, 2, 1, 56, 1, 1, 3, 8,
|
135
|
+
4, 1, 3, 4, 13, 2, 29, 1, 2, 56, 1, 1, 1, 2, 6, 6, 1, 9, 1, 10, 2,
|
136
|
+
29, 2, 1, 56, 2, 3, 17, 30, 2, 3, 14, 1, 56, 1, 1, 3, 8, 4, 1, 20,
|
137
|
+
2, 29, 1, 2, 56, 1, 1, 2, 1, 6, 6, 11, 10, 2, 30, 1, 59, 1, 1, 1,
|
138
|
+
12, 1, 9, 1, 41, 3, 58, 3, 5, 17, 11, 2, 30, 2, 56, 1, 1, 1, 1, 2,
|
139
|
+
1, 3, 1, 5, 11, 11, 2, 30, 2, 58, 1, 2, 5, 7, 11, 10, 2, 30, 2, 70,
|
140
|
+
6, 2, 6, 7, 19, 2, 60, 11, 5, 5, 1, 1, 8, 97, 13, 3, 5, 3, 6, 74, 2,
|
141
|
+
27, 1, 1, 1, 1, 1, 4, 2, 49, 14, 1, 5, 1, 2, 8, 45, 9, 1, 100, 2, 4,
|
142
|
+
1, 6, 1, 2, 2, 2, 23, 2, 2, 4, 3, 1, 3, 2, 7, 3, 4, 13, 1, 2, 2, 6,
|
143
|
+
1, 1, 1, 112, 96, 72, 82, 357, 1, 946, 3, 29, 3, 29, 2, 30, 2, 64,
|
144
|
+
2, 1, 7, 8, 1, 2, 11, 9, 1, 45, 3, 155, 1, 118, 3, 4, 2, 9, 1, 6, 3,
|
145
|
+
116, 17, 7, 2, 77, 2, 3, 228, 4, 1, 47, 1, 1, 5, 1, 1, 5, 1, 2, 38,
|
146
|
+
9, 12, 2, 1, 30, 1, 4, 2, 2, 1, 121, 8, 8, 2, 2, 392, 64, 523, 1, 2,
|
147
|
+
2, 24, 7, 49, 16, 96, 33, 3311, 32, 554, 6, 105, 2, 30164, 4, 9, 2,
|
148
|
+
388, 1, 3, 1, 4, 1, 23, 2, 2, 1, 88, 2, 50, 16, 1, 97, 8, 25, 11, 2,
|
149
|
+
213, 6, 2, 2, 2, 2, 12, 1, 8, 1, 1, 434, 11172, 1116, 1024, 6942, 1,
|
150
|
+
737, 16, 16, 7, 216, 1, 158, 2, 89, 3, 513, 1, 2051, 15, 40, 8,
|
151
|
+
50981, 1, 1, 3, 3, 1, 5, 8, 8, 2, 7, 30, 4, 148, 3, 798140, 255],
|
152
|
+
[1, 11, 1, 10, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0,
|
153
|
+
2, 0, 1, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 2,
|
154
|
+
0, 2, 0, 2, 0, 2, 4, 0, 2, 0, 4, 2, 4, 2, 0, 2, 0, 2, 0, 2, 4, 0, 2,
|
155
|
+
0, 2, 4, 2, 4, 2, 0, 2, 0, 2, 0, 2, 4, 0, 2, 4, 2, 0, 2, 0, 2, 4, 0,
|
156
|
+
2, 0, 4, 2, 4, 2, 0, 2, 0, 2, 4, 0, 2, 0, 2, 4, 2, 4, 2, 0, 2, 0, 2,
|
157
|
+
0, 2, 4, 2, 4, 2, 0, 2, 0, 4, 0, 2, 4, 2, 0, 2, 0, 4, 0, 2, 0, 4, 2,
|
158
|
+
4, 2, 4, 2, 4, 2, 0, 2, 0, 4, 0, 2, 4, 2, 4, 2, 0, 2, 0, 4, 0, 2, 4,
|
159
|
+
2, 4, 2, 4, 0, 2, 0, 3, 2, 0, 2, 0, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2,
|
160
|
+
0, 2, 0, 4, 0, 2, 4, 2, 0, 2, 0, 2, 0, 2, 0, 4, 2, 4, 2, 4, 2, 4, 2,
|
161
|
+
0, 4, 2, 0, 2, 0, 4, 0, 4, 0, 2, 0, 2, 4, 2, 4, 2, 0, 4, 0, 5, 6, 7,
|
162
|
+
0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 4, 2, 4, 2, 4, 2, 0, 2, 0, 2, 0,
|
163
|
+
2, 0, 2, 4, 2, 4, 2, 4, 2, 0, 4, 0, 4, 0, 2, 4, 0, 2, 4, 0, 2, 4, 2,
|
164
|
+
4, 2, 4, 2, 4, 0, 2, 0, 2, 4, 0, 4, 2, 4, 2, 4, 0, 4, 2, 4, 2, 0, 2,
|
165
|
+
0, 1, 2, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0,
|
166
|
+
2, 0, 2, 0, 4, 2, 4, 0, 4, 0, 4, 2, 0, 2, 0, 2, 4, 0, 2, 4, 2, 4, 2,
|
167
|
+
0, 2, 0, 2, 4, 0, 9, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 1, 0, 2,
|
168
|
+
0, 2, 0, 2, 0, 2, 4, 2, 0, 4, 2, 1, 2, 0, 2, 0, 2, 0, 2, 0, 1, 2],
|
169
|
+
true);
|
170
|
+
}
|
171
|
+
return (/** @type {number} */
|
172
|
+
goog.i18n.GraphemeBreak.inversions_.at(acode));
|
173
|
+
}
|
174
|
+
};
|
175
|
+
|
176
|
+
|
177
|
+
/**
|
178
|
+
* There are two kinds of grapheme clusters: 1) Legacy 2)Extended. This method
|
179
|
+
* is to check for both using a boolean flag to switch between them.
|
180
|
+
* @param {number} a The code point value of the first character.
|
181
|
+
* @param {number} b The code point value of the second character.
|
182
|
+
* @param {boolean=} opt_extended If true, indicates extended grapheme cluster;
|
183
|
+
* If false, indicates legacy cluster.
|
184
|
+
* @return {boolean} True if a & b do not form a cluster; False otherwise.
|
185
|
+
*/
|
186
|
+
goog.i18n.GraphemeBreak.hasGraphemeBreak = function(a, b, opt_extended) {
|
187
|
+
|
188
|
+
var prop_a = goog.i18n.GraphemeBreak.getBreakProp_(a);
|
189
|
+
var prop_b = goog.i18n.GraphemeBreak.getBreakProp_(b);
|
190
|
+
var prop = goog.i18n.GraphemeBreak.property;
|
191
|
+
|
192
|
+
return goog.i18n.GraphemeBreak.applyLegacyBreakRules_(prop_a, prop_b) &&
|
193
|
+
!(opt_extended && (prop_a == prop.PREPEND || prop_b == prop.SPACING_MARK));
|
194
|
+
};
|
195
|
+
;
|
196
|
+
FI"asset_paths;
|
197
|
+
F["�/Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library/closure/goog/i18n/graphemebreak.jsI"dependency_paths;
|
198
|
+
F[{I" path;
|
199
|
+
F"�/Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library/closure/goog/i18n/graphemebreak.jsI"
|
200
|
+
mtime;
|
201
|
+
FIu: Time
|
202
|
+
T:offsetiI"hexdigest;
|
203
|
+
F"%2643825de66578a8fd08c8563f3a2184I"
|
204
|
+
F"%46dde6621c301f4928e3b34efee9e3b5
|