ruby-enum 1.0.0 → 1.2.0
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/CHANGELOG.md +12 -0
- data/Dangerfile +2 -0
- data/Gemfile +6 -5
- data/Gemfile.lock +128 -93
- data/README.md +37 -4
- data/RELEASING.md +14 -5
- data/Rakefile +10 -0
- data/UPGRADING.md +39 -0
- data/benchmarks/basic.rb +61 -0
- data/benchmarks/inheritance.rb +53 -0
- data/lib/ruby-enum/enum.rb +65 -25
- data/lib/ruby-enum/errors/base.rb +2 -2
- data/lib/ruby-enum/version.rb +1 -1
- data/pkg/ruby-enum-0.8.0.gem +0 -0
- data/pkg/ruby-enum-0.9.0.gem +0 -0
- data/pkg/ruby-enum-1.1.0.gem +0 -0
- data/spec/ruby-enum/enum/case_spec.rb +35 -34
- data/spec/ruby-enum/enum_spec.rb +212 -39
- data/spec/spec_helper.rb +2 -2
- data/spec_i18n/Gemfile.lock +26 -16
- data/spec_i18n/spec/i18n_spec.rb +9 -7
- metadata +8 -33
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
- data/coverage/assets/0.12.3/application.css +0 -1
- data/coverage/assets/0.12.3/application.js +0 -7
- data/coverage/assets/0.12.3/colorbox/border.png +0 -0
- data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
- data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
- data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.12.3/favicon_green.png +0 -0
- data/coverage/assets/0.12.3/favicon_red.png +0 -0
- data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.12.3/loading.gif +0 -0
- data/coverage/assets/0.12.3/magnify.png +0 -0
- data/coverage/index.html +0 -8785
data/spec/ruby-enum/enum_spec.rb
CHANGED
|
@@ -2,22 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
describe Ruby::Enum do
|
|
6
|
+
class Colors
|
|
7
|
+
include Ruby::Enum
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
end
|
|
9
|
+
define :RED, 'red'
|
|
10
|
+
define :GREEN, 'green'
|
|
11
|
+
end
|
|
11
12
|
|
|
12
|
-
class FirstSubclass < Colors
|
|
13
|
-
|
|
14
|
-
end
|
|
13
|
+
class FirstSubclass < Colors
|
|
14
|
+
define :ORANGE, 'orange'
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
class SecondSubclass < FirstSubclass
|
|
17
|
-
|
|
18
|
-
end
|
|
17
|
+
class SecondSubclass < FirstSubclass
|
|
18
|
+
define :PINK, 'pink'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class OtherSecondSubclass < FirstSubclass
|
|
22
|
+
include Ruby::Enum
|
|
23
|
+
|
|
24
|
+
define :MAGENTA, 'magenta'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class SubclassWithNoOwnDefines < Colors
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class SubclassRedefiningParentKey < Colors
|
|
31
|
+
define :RED, 'crimson'
|
|
32
|
+
end
|
|
19
33
|
|
|
20
|
-
describe Ruby::Enum do
|
|
21
34
|
it 'returns an enum value' do
|
|
22
35
|
expect(Colors::RED).to eq 'red'
|
|
23
36
|
expect(Colors::GREEN).to eq 'green'
|
|
@@ -57,6 +70,13 @@ describe Ruby::Enum do
|
|
|
57
70
|
expect(enum_keys).to eq %i[RED GREEN]
|
|
58
71
|
expect(enum_values).to eq %w[red green]
|
|
59
72
|
end
|
|
73
|
+
|
|
74
|
+
context 'when a subclass defines its own enums' do
|
|
75
|
+
it 'iterates over the enums defined in the parent class too' do
|
|
76
|
+
keys = FirstSubclass.map { |key, _enum| key }
|
|
77
|
+
expect(keys).to eq %i[RED GREEN ORANGE]
|
|
78
|
+
end
|
|
79
|
+
end
|
|
60
80
|
end
|
|
61
81
|
|
|
62
82
|
describe '#map' do
|
|
@@ -86,6 +106,12 @@ describe Ruby::Enum do
|
|
|
86
106
|
it 'returns nil for an invalid value' do
|
|
87
107
|
expect(Colors.parse('invalid')).to be_nil
|
|
88
108
|
end
|
|
109
|
+
|
|
110
|
+
context 'when a subclass defines its own enums' do
|
|
111
|
+
it 'parses a value defined in the parent class' do
|
|
112
|
+
expect(FirstSubclass.parse('red')).to eq('red')
|
|
113
|
+
end
|
|
114
|
+
end
|
|
89
115
|
end
|
|
90
116
|
|
|
91
117
|
describe '#key?' do
|
|
@@ -104,6 +130,12 @@ describe Ruby::Enum do
|
|
|
104
130
|
it 'returns false for invalid keys' do
|
|
105
131
|
expect(Colors.key?(:NOT_A_KEY)).to be(false)
|
|
106
132
|
end
|
|
133
|
+
|
|
134
|
+
context 'when a subclass defines its own enums' do
|
|
135
|
+
it 'returns true for keys inherited from the parent class' do
|
|
136
|
+
expect(FirstSubclass.key?(:RED)).to be(true)
|
|
137
|
+
end
|
|
138
|
+
end
|
|
107
139
|
end
|
|
108
140
|
|
|
109
141
|
describe '#value' do
|
|
@@ -116,6 +148,12 @@ describe Ruby::Enum do
|
|
|
116
148
|
it 'returns nil for an invalid key' do
|
|
117
149
|
expect(Colors.value(:NOT_A_KEY)).to be_nil
|
|
118
150
|
end
|
|
151
|
+
|
|
152
|
+
context 'when a subclass defines its own enums' do
|
|
153
|
+
it 'returns the value for a key inherited from the parent class' do
|
|
154
|
+
expect(FirstSubclass.value(:RED)).to eq('red')
|
|
155
|
+
end
|
|
156
|
+
end
|
|
119
157
|
end
|
|
120
158
|
|
|
121
159
|
describe '#value?' do
|
|
@@ -134,6 +172,12 @@ describe Ruby::Enum do
|
|
|
134
172
|
it 'returns false for invalid values' do
|
|
135
173
|
expect(Colors.value?('I am not a value')).to be(false)
|
|
136
174
|
end
|
|
175
|
+
|
|
176
|
+
context 'when a subclass defines its own enums' do
|
|
177
|
+
it 'returns true for values inherited from the parent class' do
|
|
178
|
+
expect(FirstSubclass.value?('red')).to be(true)
|
|
179
|
+
end
|
|
180
|
+
end
|
|
137
181
|
end
|
|
138
182
|
|
|
139
183
|
describe '#key' do
|
|
@@ -146,24 +190,66 @@ describe Ruby::Enum do
|
|
|
146
190
|
it 'returns nil for an invalid value' do
|
|
147
191
|
expect(Colors.key('invalid')).to be_nil
|
|
148
192
|
end
|
|
193
|
+
|
|
194
|
+
context 'when a subclass defines its own enums' do
|
|
195
|
+
it 'returns the key for a value inherited from the parent class' do
|
|
196
|
+
expect(FirstSubclass.key('red')).to eq(:RED)
|
|
197
|
+
end
|
|
198
|
+
end
|
|
149
199
|
end
|
|
150
200
|
|
|
151
201
|
describe '#keys' do
|
|
152
202
|
it 'returns keys' do
|
|
153
203
|
expect(Colors.keys).to eq(%i[RED GREEN])
|
|
154
204
|
end
|
|
205
|
+
|
|
206
|
+
context 'when a subclass defines its own enums' do
|
|
207
|
+
it 'includes keys from the parent class' do
|
|
208
|
+
expect(FirstSubclass.keys).to eq(%i[RED GREEN ORANGE])
|
|
209
|
+
end
|
|
210
|
+
end
|
|
155
211
|
end
|
|
156
212
|
|
|
157
213
|
describe '#values' do
|
|
158
214
|
it 'returns values' do
|
|
159
215
|
expect(Colors.values).to eq(%w[red green])
|
|
160
216
|
end
|
|
217
|
+
|
|
218
|
+
context 'when a subclass is defined' do
|
|
219
|
+
it 'returns all values' do
|
|
220
|
+
expect(FirstSubclass.values).to eq(%w[red green orange])
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
context 'when a subclass of a subclass is defined' do
|
|
225
|
+
it 'returns all values' do
|
|
226
|
+
expect(SecondSubclass.values).to eq(%w[red green orange pink])
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
context 'when a subclass of a subclass is defined with redundant module inclusion' do
|
|
231
|
+
it 'returns all values' do
|
|
232
|
+
expect(OtherSecondSubclass.values).to eq(%w[red green orange magenta])
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
context 'when a subclass defines no enums of its own' do
|
|
237
|
+
it 'returns the values from the parent class' do
|
|
238
|
+
expect(SubclassWithNoOwnDefines.values).to eq(%w[red green])
|
|
239
|
+
end
|
|
240
|
+
end
|
|
161
241
|
end
|
|
162
242
|
|
|
163
243
|
describe '#to_h' do
|
|
164
244
|
it 'returns a hash of key:values' do
|
|
165
245
|
expect(Colors.to_h).to eq(RED: 'red', GREEN: 'green')
|
|
166
246
|
end
|
|
247
|
+
|
|
248
|
+
context 'when a subclass defines its own enums' do
|
|
249
|
+
it 'includes key:values from the parent class' do
|
|
250
|
+
expect(FirstSubclass.to_h).to eq(RED: 'red', GREEN: 'green', ORANGE: 'orange')
|
|
251
|
+
end
|
|
252
|
+
end
|
|
167
253
|
end
|
|
168
254
|
|
|
169
255
|
context 'when a duplicate key is used' do
|
|
@@ -218,6 +304,47 @@ describe Ruby::Enum do
|
|
|
218
304
|
end
|
|
219
305
|
end
|
|
220
306
|
|
|
307
|
+
describe 'Reloading enum definition' do
|
|
308
|
+
it 'can be lazy reloaded' do
|
|
309
|
+
class_body = proc do
|
|
310
|
+
include Ruby::Enum
|
|
311
|
+
|
|
312
|
+
define :BUZZ_CUT, 'buzz_cut'
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
hair_styles = Class.new(&class_body)
|
|
316
|
+
|
|
317
|
+
expect { hair_styles.class_eval(&class_body) }.not_to raise_error
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
context 'when a subclass is defined' do
|
|
321
|
+
it 'NEEDS to include Ruby::Enum explicitly to be lazy reloaded' do
|
|
322
|
+
hair_styles = Class.new do
|
|
323
|
+
include Ruby::Enum
|
|
324
|
+
|
|
325
|
+
define :BUZZ_CUT, 'buzz_cut'
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
broken_subclass_body = proc do
|
|
329
|
+
define :PONYTAIL, 'ponytail'
|
|
330
|
+
end
|
|
331
|
+
broken_subclass = Class.new(hair_styles, &broken_subclass_body)
|
|
332
|
+
expect { broken_subclass.class_eval(&broken_subclass_body) }
|
|
333
|
+
.to raise_error Ruby::Enum::Errors::DuplicateKeyError, /PONYTAIL/
|
|
334
|
+
|
|
335
|
+
subclass_body = proc do
|
|
336
|
+
include Ruby::Enum
|
|
337
|
+
|
|
338
|
+
define :PONYTAIL, 'ponytail'
|
|
339
|
+
end
|
|
340
|
+
more_hair_styles = Class.new(hair_styles, &subclass_body)
|
|
341
|
+
|
|
342
|
+
expect { more_hair_styles.class_eval(&subclass_body) }.not_to raise_error
|
|
343
|
+
expect(more_hair_styles.values).to eq(%w[buzz_cut ponytail])
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
|
|
221
348
|
describe 'Given a class that has not defined any enums' do
|
|
222
349
|
class EmptyEnums
|
|
223
350
|
include Ruby::Enum
|
|
@@ -250,29 +377,76 @@ describe Ruby::Enum do
|
|
|
250
377
|
end
|
|
251
378
|
|
|
252
379
|
context 'when defining a 2 level depth subclass' do
|
|
253
|
-
subject { SecondSubclass }
|
|
254
|
-
|
|
255
380
|
it 'contains its own enums and all the enums defined in the parent classes' do
|
|
256
|
-
expect(
|
|
257
|
-
expect(
|
|
258
|
-
expect(
|
|
259
|
-
expect(
|
|
381
|
+
expect(SecondSubclass::RED).to eq 'red'
|
|
382
|
+
expect(SecondSubclass::GREEN).to eq 'green'
|
|
383
|
+
expect(SecondSubclass::ORANGE).to eq 'orange'
|
|
384
|
+
expect(SecondSubclass::PINK).to eq 'pink'
|
|
260
385
|
end
|
|
261
386
|
|
|
262
387
|
describe '#values' do
|
|
263
|
-
subject { SecondSubclass.values }
|
|
264
|
-
|
|
265
388
|
it 'contains the values from all of the parent classes' do
|
|
266
|
-
expect(
|
|
389
|
+
expect(SecondSubclass.values).to eq(%w[red green orange pink])
|
|
267
390
|
end
|
|
268
391
|
end
|
|
269
392
|
end
|
|
270
393
|
|
|
271
394
|
describe '#values' do
|
|
272
|
-
subject { FirstSubclass.values }
|
|
273
|
-
|
|
274
395
|
it 'contains the values from the parent class' do
|
|
275
|
-
expect(
|
|
396
|
+
expect(FirstSubclass.values).to eq(%w[red green orange])
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
context 'when a subclass defines no enums of its own (issue #49)' do
|
|
401
|
+
it 'inherits the parent class enums via constants' do
|
|
402
|
+
expect(SubclassWithNoOwnDefines::RED).to eq 'red'
|
|
403
|
+
expect(SubclassWithNoOwnDefines::GREEN).to eq 'green'
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
it 'inherits the parent class values' do
|
|
407
|
+
expect(SubclassWithNoOwnDefines.values).to eq(%w[red green])
|
|
408
|
+
end
|
|
409
|
+
|
|
410
|
+
it 'inherits the parent class enums for keys, key?, value?, key, value, to_h, parse and each' do
|
|
411
|
+
expect(SubclassWithNoOwnDefines.keys).to eq(%i[RED GREEN])
|
|
412
|
+
expect(SubclassWithNoOwnDefines.key?(:RED)).to be true
|
|
413
|
+
expect(SubclassWithNoOwnDefines.value?('red')).to be true
|
|
414
|
+
expect(SubclassWithNoOwnDefines.key('red')).to eq :RED
|
|
415
|
+
expect(SubclassWithNoOwnDefines.value(:RED)).to eq 'red'
|
|
416
|
+
expect(SubclassWithNoOwnDefines.to_h).to eq(RED: 'red', GREEN: 'green')
|
|
417
|
+
expect(SubclassWithNoOwnDefines.parse('red')).to eq 'red'
|
|
418
|
+
expect(SubclassWithNoOwnDefines.each.map { |key, _enum| key }).to eq(%i[RED GREEN])
|
|
419
|
+
end
|
|
420
|
+
end
|
|
421
|
+
|
|
422
|
+
context 'when a subclass redefines a key already used by a parent class' do
|
|
423
|
+
it 'does not raise a duplicate key error' do
|
|
424
|
+
expect(SubclassRedefiningParentKey::RED).to eq 'crimson'
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
it "the subclass' own value takes precedence" do
|
|
428
|
+
expect(SubclassRedefiningParentKey.value(:RED)).to eq 'crimson'
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
it "the subclass' own value is used in to_h" do
|
|
432
|
+
expect(SubclassRedefiningParentKey.to_h).to eq(RED: 'crimson', GREEN: 'green')
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
it 'includes both the parent and its own redefined value in values' do
|
|
436
|
+
expect(SubclassRedefiningParentKey.values).to eq(%w[red green crimson])
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
it "the parent class' own value is unaffected" do
|
|
440
|
+
expect(Colors::RED).to eq 'red'
|
|
441
|
+
expect(Colors.value(:RED)).to eq 'red'
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
it 'still allows the parent class to raise a duplicate key error for its own re-definitions' do
|
|
445
|
+
expect do
|
|
446
|
+
Colors.class_eval do
|
|
447
|
+
define :RED, 'red'
|
|
448
|
+
end
|
|
449
|
+
end.to raise_error Ruby::Enum::Errors::DuplicateKeyError, /RED/
|
|
276
450
|
end
|
|
277
451
|
end
|
|
278
452
|
end
|
|
@@ -280,41 +454,40 @@ describe Ruby::Enum do
|
|
|
280
454
|
describe 'default value' do
|
|
281
455
|
class Default
|
|
282
456
|
include Ruby::Enum
|
|
457
|
+
|
|
283
458
|
define :KEY
|
|
284
459
|
end
|
|
285
460
|
|
|
286
|
-
subject { Default::KEY }
|
|
287
|
-
|
|
288
461
|
it 'equals the key' do
|
|
289
|
-
expect(
|
|
462
|
+
expect(Default::KEY).to eq(:KEY)
|
|
290
463
|
end
|
|
291
464
|
end
|
|
292
465
|
|
|
293
466
|
describe 'non constant definitions' do
|
|
294
467
|
class States
|
|
295
468
|
include Ruby::Enum
|
|
469
|
+
|
|
296
470
|
define :created, 'Created'
|
|
297
471
|
define :published, 'Published'
|
|
298
472
|
define :undefined
|
|
299
473
|
end
|
|
300
|
-
subject { States }
|
|
301
474
|
|
|
302
475
|
it 'behaves like an enum' do
|
|
303
|
-
expect(
|
|
304
|
-
expect(
|
|
305
|
-
expect(
|
|
476
|
+
expect(States.created).to eq 'Created'
|
|
477
|
+
expect(States.published).to eq 'Published'
|
|
478
|
+
expect(States.undefined).to eq :undefined
|
|
306
479
|
|
|
307
|
-
expect(
|
|
308
|
-
expect(
|
|
480
|
+
expect(States.key?(:created)).to be true
|
|
481
|
+
expect(States.key('Created')).to eq :created
|
|
309
482
|
|
|
310
|
-
expect(
|
|
311
|
-
expect(
|
|
483
|
+
expect(States.value?('Created')).to be true
|
|
484
|
+
expect(States.value(:created)).to eq 'Created'
|
|
312
485
|
|
|
313
|
-
expect(
|
|
314
|
-
expect(
|
|
486
|
+
expect(States.key?(:undefined)).to be true
|
|
487
|
+
expect(States.key(:undefined)).to eq :undefined
|
|
315
488
|
|
|
316
|
-
expect(
|
|
317
|
-
expect(
|
|
489
|
+
expect(States.value?(:undefined)).to be true
|
|
490
|
+
expect(States.value(:undefined)).to eq :undefined
|
|
318
491
|
end
|
|
319
492
|
end
|
|
320
493
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec_i18n/Gemfile.lock
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
ruby-enum (1.
|
|
4
|
+
ruby-enum (1.2.0)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: http://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
diff-lcs (1.
|
|
10
|
-
rake (13.
|
|
11
|
-
rspec (3.
|
|
12
|
-
rspec-core (~> 3.
|
|
13
|
-
rspec-expectations (~> 3.
|
|
14
|
-
rspec-mocks (~> 3.
|
|
15
|
-
rspec-core (3.
|
|
16
|
-
rspec-support (~> 3.
|
|
17
|
-
rspec-expectations (3.
|
|
9
|
+
diff-lcs (1.6.2)
|
|
10
|
+
rake (13.4.2)
|
|
11
|
+
rspec (3.13.2)
|
|
12
|
+
rspec-core (~> 3.13.0)
|
|
13
|
+
rspec-expectations (~> 3.13.0)
|
|
14
|
+
rspec-mocks (~> 3.13.0)
|
|
15
|
+
rspec-core (3.13.6)
|
|
16
|
+
rspec-support (~> 3.13.0)
|
|
17
|
+
rspec-expectations (3.13.5)
|
|
18
18
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
19
|
-
rspec-support (~> 3.
|
|
20
|
-
rspec-mocks (3.
|
|
19
|
+
rspec-support (~> 3.13.0)
|
|
20
|
+
rspec-mocks (3.13.8)
|
|
21
21
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
22
|
-
rspec-support (~> 3.
|
|
23
|
-
rspec-support (3.
|
|
22
|
+
rspec-support (~> 3.13.0)
|
|
23
|
+
rspec-support (3.13.7)
|
|
24
24
|
|
|
25
25
|
PLATFORMS
|
|
26
|
-
arm64-darwin-
|
|
26
|
+
arm64-darwin-23
|
|
27
27
|
ruby
|
|
28
28
|
|
|
29
29
|
DEPENDENCIES
|
|
@@ -31,5 +31,15 @@ DEPENDENCIES
|
|
|
31
31
|
rspec (~> 3.0)
|
|
32
32
|
ruby-enum!
|
|
33
33
|
|
|
34
|
+
CHECKSUMS
|
|
35
|
+
diff-lcs (1.6.2)
|
|
36
|
+
rake (13.4.2)
|
|
37
|
+
rspec (3.13.2)
|
|
38
|
+
rspec-core (3.13.6)
|
|
39
|
+
rspec-expectations (3.13.5)
|
|
40
|
+
rspec-mocks (3.13.8)
|
|
41
|
+
rspec-support (3.13.7)
|
|
42
|
+
ruby-enum (1.2.0)
|
|
43
|
+
|
|
34
44
|
BUNDLED WITH
|
|
35
|
-
|
|
45
|
+
4.0.6
|
data/spec_i18n/spec/i18n_spec.rb
CHANGED
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
module I18n
|
|
6
|
+
class Colors
|
|
7
|
+
include Ruby::Enum
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
define :RED, 'red'
|
|
10
|
+
define :GREEN, 'green'
|
|
11
|
+
end
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
describe Ruby::Enum do
|
|
13
15
|
context 'when the i18n gem is not loaded' do
|
|
14
16
|
it 'raises UninitializedConstantError on an invalid constant' do
|
|
15
17
|
expect do
|
|
16
|
-
|
|
18
|
+
I18n::Colors::ANYTHING
|
|
17
19
|
end.to raise_error Ruby::Enum::Errors::UninitializedConstantError, /ruby.enum.errors.messages.uninitialized_constant.summary/
|
|
18
20
|
end
|
|
19
21
|
|
|
@@ -24,7 +26,7 @@ describe Ruby::Enum do
|
|
|
24
26
|
|
|
25
27
|
it 'raises DuplicateKeyError' do
|
|
26
28
|
expect do
|
|
27
|
-
|
|
29
|
+
I18n::Colors.class_eval do
|
|
28
30
|
define :RED, 'some'
|
|
29
31
|
end
|
|
30
32
|
end.to raise_error Ruby::Enum::Errors::DuplicateKeyError, /ruby.enum.errors.messages.duplicate_key.message/
|
|
@@ -38,7 +40,7 @@ describe Ruby::Enum do
|
|
|
38
40
|
|
|
39
41
|
it 'raises a DuplicateValueError' do
|
|
40
42
|
expect do
|
|
41
|
-
|
|
43
|
+
I18n::Colors.class_eval do
|
|
42
44
|
define :Other, 'red'
|
|
43
45
|
end
|
|
44
46
|
end.to raise_error Ruby::Enum::Errors::DuplicateValueError, /ruby.enum.errors.messages.duplicate_value.summary/
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby-enum
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Doubrovkine
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email: dblock@dblock.org
|
|
@@ -26,37 +26,9 @@ files:
|
|
|
26
26
|
- RELEASING.md
|
|
27
27
|
- Rakefile
|
|
28
28
|
- UPGRADING.md
|
|
29
|
+
- benchmarks/basic.rb
|
|
29
30
|
- benchmarks/case.rb
|
|
30
|
-
-
|
|
31
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
|
|
32
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
|
|
33
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
|
|
34
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
|
|
35
|
-
- coverage/assets/0.12.3/application.css
|
|
36
|
-
- coverage/assets/0.12.3/application.js
|
|
37
|
-
- coverage/assets/0.12.3/colorbox/border.png
|
|
38
|
-
- coverage/assets/0.12.3/colorbox/controls.png
|
|
39
|
-
- coverage/assets/0.12.3/colorbox/loading.gif
|
|
40
|
-
- coverage/assets/0.12.3/colorbox/loading_background.png
|
|
41
|
-
- coverage/assets/0.12.3/favicon_green.png
|
|
42
|
-
- coverage/assets/0.12.3/favicon_red.png
|
|
43
|
-
- coverage/assets/0.12.3/favicon_yellow.png
|
|
44
|
-
- coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
|
|
45
|
-
- coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
|
|
46
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
|
|
47
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
|
|
48
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
|
|
49
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
|
|
50
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
|
|
51
|
-
- coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
|
|
52
|
-
- coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
|
|
53
|
-
- coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
|
|
54
|
-
- coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
|
|
55
|
-
- coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
|
|
56
|
-
- coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
|
|
57
|
-
- coverage/assets/0.12.3/loading.gif
|
|
58
|
-
- coverage/assets/0.12.3/magnify.png
|
|
59
|
-
- coverage/index.html
|
|
31
|
+
- benchmarks/inheritance.rb
|
|
60
32
|
- lib/config/locales/en.yml
|
|
61
33
|
- lib/ruby-enum.rb
|
|
62
34
|
- lib/ruby-enum/enum.rb
|
|
@@ -68,6 +40,9 @@ files:
|
|
|
68
40
|
- lib/ruby-enum/errors/uninitialized_constant_error.rb
|
|
69
41
|
- lib/ruby-enum/version.rb
|
|
70
42
|
- lib/ruby_enum.rb
|
|
43
|
+
- pkg/ruby-enum-0.8.0.gem
|
|
44
|
+
- pkg/ruby-enum-0.9.0.gem
|
|
45
|
+
- pkg/ruby-enum-1.1.0.gem
|
|
71
46
|
- ruby-enum.gemspec
|
|
72
47
|
- spec/ruby-enum/enum/case_spec.rb
|
|
73
48
|
- spec/ruby-enum/enum_spec.rb
|
|
@@ -98,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
98
73
|
- !ruby/object:Gem::Version
|
|
99
74
|
version: 1.3.6
|
|
100
75
|
requirements: []
|
|
101
|
-
rubygems_version: 3.5.
|
|
76
|
+
rubygems_version: 3.5.16
|
|
102
77
|
signing_key:
|
|
103
78
|
specification_version: 4
|
|
104
79
|
summary: Enum-like behavior for Ruby.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section{margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}blockquote:before,blockquote:after,q:before,q:after{content:""}blockquote,q{quotes:"" ""}a img{border:0}html{font-size:100.01%}body{font-size:82%;color:#222;background:#fff;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5,h6{font-weight:normal;color:#111}h1{font-size:3em;line-height:1;margin-bottom:.5em}h2{font-size:2em;margin-bottom:.75em}h3{font-size:1.5em;line-height:1;margin-bottom:1em}h4{font-size:1.2em;line-height:1.25;margin-bottom:1.25em}h5{font-size:1em;font-weight:bold;margin-bottom:1.5em}h6{font-size:1em;font-weight:bold}h1 img,h2 img,h3 img,h4 img,h5 img,h6 img{margin:0}p{margin:0 0 1.5em}p img.left{float:left;margin:1.5em 1.5em 1.5em 0;padding:0}p img.right{float:right;margin:1.5em 0 1.5em 1.5em}a:focus,a:hover{color:#000}a{color:#009;text-decoration:underline}blockquote{margin:1.5em;color:#666;font-style:italic}strong{font-weight:bold}em,dfn{font-style:italic}dfn{font-weight:bold}sup,sub{line-height:0}abbr,acronym{border-bottom:1px dotted #666}address{margin:0 0 1.5em;font-style:italic}del{color:#666}pre{margin:1.5em 0;white-space:pre}pre,code,tt{font:1em 'andale mono','lucida console',monospace;line-height:1.5}li ul,li ol{margin:0}ul,ol{margin:0 1.5em 1.5em 0;padding-left:3.333em}ul{list-style-type:disc}ol{list-style-type:decimal}dl{margin:0 0 1.5em 0}dl dt{font-weight:bold}dd{margin-left:1.5em}table{margin-bottom:1.4em;width:100%}th{font-weight:bold}thead th{background:#c3d9ff}th,td,caption{padding:4px 10px 4px 5px}tr.even td{background:#efefef}tfoot{font-style:italic}caption{background:#eee}.small{font-size:.8em;margin-bottom:1.875em;line-height:1.875em}.large{font-size:1.2em;line-height:2.5em;margin-bottom:1.25em}.hide{display:none}.quiet{color:#666}.loud{color:#000}.highlight{background:#ff0}.added{background:#060;color:#fff}.removed{background:#900;color:#fff}.first{margin-left:0;padding-left:0}.last{margin-right:0;padding-right:0}.top{margin-top:0;padding-top:0}.bottom{margin-bottom:0;padding-bottom:0}label{font-weight:bold}fieldset{padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc}legend{font-weight:bold;font-size:1.2em}input[type=text],input[type=password],input.text,input.title,textarea,select{background-color:#fff;border:1px solid #bbb}input[type=text]:focus,input[type=password]:focus,input.text:focus,input.title:focus,textarea:focus,select:focus{border-color:#666}input[type=text],input[type=password],input.text,input.title,textarea,select{margin:.5em 0}input.text,input.title{width:300px;padding:5px}input.title{font-size:1.5em}textarea{width:390px;height:250px;padding:5px}input[type=checkbox],input[type=radio],input.checkbox,input.radio{position:relative;top:.25em}form.inline{line-height:3}form.inline p{margin-bottom:0}.error,.notice,.success{padding:.8em;margin-bottom:1em;border:2px solid #ddd}.error{background:#fbe3e4;color:#8a1f11;border-color:#fbc2c4}.notice{background:#fff6bf;color:#514721;border-color:#ffd324}.success{background:#e6efc2;color:#264409;border-color:#c6d880}.error a{color:#8a1f11}.notice a{color:#514721}.success a{color:#264409}.box{padding:1.5em;margin-bottom:1.5em;background:#e5ecf9}hr{background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:0}hr.space{background:#fff;color:#fff;visibility:hidden}.clearfix:after,.container:after{content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden}.clearfix,.container{display:block}.clear{clear:both}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:0}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("DataTables-1.10.20/images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("DataTables-1.10.20/images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("DataTables-1.10.20/images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("DataTables-1.10.20/images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("DataTables-1.10.20/images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:0}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:0}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,white),color-stop(100%,#dcdcdc));background:-webkit-linear-gradient(top,white 0,#dcdcdc 100%);background:-moz-linear-gradient(top,white 0,#dcdcdc 100%);background:-ms-linear-gradient(top,white 0,#dcdcdc 100%);background:-o-linear-gradient(top,white 0,#dcdcdc 100%);background:linear-gradient(to bottom,white 0,#dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0,#111 100%);background:-moz-linear-gradient(top,#585858 0,#111 100%);background:-ms-linear-gradient(top,#585858 0,#111 100%);background:-o-linear-gradient(top,#585858 0,#111 100%);background:linear-gradient(to bottom,#585858 0,#111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:0;background-color:#2b2b2b;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b 0,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,0.9)),color-stop(75%,rgba(255,255,255,0.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:0}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}pre .comment,pre .template_comment,pre .diff .header,pre .javadoc{color:#998;font-style:italic}pre .keyword,pre .css .rule .keyword,pre .winutils,pre .javascript .title,pre .lisp .title{color:#000;font-weight:bold}pre .number,pre .hexcolor{color:#458}pre .string,pre .tag .value,pre .phpdoc,pre .tex .formula{color:#d14}pre .subst{color:#712}pre .constant,pre .title,pre .id{color:#900;font-weight:bold}pre .javascript .title,pre .lisp .title,pre .subst{font-weight:normal}pre .class .title,pre .haskell .label,pre .tex .command{color:#458;font-weight:bold}pre .tag,pre .tag .title,pre .rules .property,pre .django .tag .keyword{color:navy;font-weight:normal}pre .attribute,pre .variable,pre .instancevar,pre .lisp .body{color:teal}pre .regexp{color:#009926}pre .class{color:#458;font-weight:bold}pre .symbol,pre .ruby .symbol .string,pre .ruby .symbol .keyword,pre .ruby .symbol .keymethods,pre .lisp .keyword,pre .tex .special,pre .input_number{color:#990073}pre .builtin,pre .built_in,pre .lisp .title{color:#0086b3}pre .preprocessor,pre .pi,pre .doctype,pre .shebang,pre .cdata{color:#999;font-weight:bold}pre .deletion{background:#fdd}pre .addition{background:#dfd}pre .diff .change{background:#0086b3}pre .chunk{color:#aaa}pre .tex .formula{opacity:.5}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default !important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-widget :active{outline:0}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-off{background-position:-96px -144px}.ui-icon-radio-on{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none}.cboxIframe{width:100%;height:100%;display:block;border:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box}#cboxOverlay{background:#000}#cboxTopLeft{width:14px;height:14px;background:url(colorbox/controls.png) no-repeat 0 0}#cboxTopCenter{height:14px;background:url(colorbox/border.png) repeat-x top left}#cboxTopRight{width:14px;height:14px;background:url(colorbox/controls.png) no-repeat -36px 0}#cboxBottomLeft{width:14px;height:43px;background:url(colorbox/controls.png) no-repeat 0 -32px}#cboxBottomCenter{height:43px;background:url(colorbox/border.png) repeat-x bottom left}#cboxBottomRight{width:14px;height:43px;background:url(colorbox/controls.png) no-repeat -36px -32px}#cboxMiddleLeft{width:14px;background:url(colorbox/controls.png) repeat-y -175px 0}#cboxMiddleRight{width:14px;background:url(colorbox/controls.png) repeat-y -211px 0}#cboxContent{background:#fff;overflow:visible}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{margin-bottom:5px}#cboxLoadingOverlay{background:url(colorbox/loading_background.png) no-repeat center center}#cboxLoadingGraphic{background:url(colorbox/loading.gif) no-repeat center center}#cboxTitle{position:absolute;bottom:-25px;left:0;text-align:center;width:100%;font-weight:bold;color:#7c7c7c}#cboxCurrent{position:absolute;bottom:-25px;left:58px;font-weight:bold;color:#7c7c7c}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{position:absolute;bottom:-29px;background:url(colorbox/controls.png) no-repeat 0 0;width:23px;height:23px;text-indent:-9999px}#cboxPrevious{left:0;background-position:-51px -25px}#cboxPrevious:hover{background-position:-51px 0}#cboxNext{left:27px;background-position:-75px -25px}#cboxNext:hover{background-position:-75px 0}#cboxClose{right:0;background-position:-100px -25px}#cboxClose:hover{background-position:-100px 0}.cboxSlideshow_on #cboxSlideshow{background-position:-125px 0;right:27px}.cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0}.cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px;right:27px}.cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0}#loading{position:fixed;left:40%;top:50%}a{color:#333;text-decoration:none}a:hover{color:#000;text-decoration:underline}body{font-family:"Lucida Grande",Helvetica,"Helvetica Neue",Arial,sans-serif;padding:12px;background-color:#333}h1,h2,h3,h4{color:#1c2324;margin:0;padding:0;margin-bottom:12px}table{width:100%}#content{clear:left;background-color:white;border:2px solid #ddd;border-top:8px solid #ddd;padding:18px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-moz-border-radius-topright:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border-top-right-radius:5px}.dataTables_filter,.dataTables_info{padding:2px 6px}abbr.timeago{text-decoration:none;border:0;font-weight:bold}.timestamp{float:right;color:#ddd}.group_tabs{list-style:none;float:left;margin:0;padding:0}.group_tabs li{display:inline;float:left}.group_tabs li a{font-family:Helvetica,Arial,sans-serif;display:block;float:left;text-decoration:none;padding:4px 8px;background-color:#aaa;background:-webkit-gradient(linear,0 0,0 bottom,from(#ddd),to(#aaa));background:-moz-linear-gradient(#ddd,#aaa);background:linear-gradient(#ddd,#aaa);text-shadow:#e5e5e5 1px 1px 0;border-bottom:0;color:#333;font-weight:bold;margin-right:8px;border-top:1px solid #efefef;-webkit-border-top-left-radius:2px;-webkit-border-top-right-radius:2px;-moz-border-radius-topleft:2px;-moz-border-radius-topright:2px;border-top-left-radius:2px;border-top-right-radius:2px}.group_tabs li a:hover{background-color:#ccc;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#aaa));background:-moz-linear-gradient(#eee,#aaa);background:linear-gradient(#eee,#aaa)}.group_tabs li a:active{padding-top:5px;padding-bottom:3px}.group_tabs li.active a{color:black;text-shadow:#fff 1px 1px 0;background-color:#ddd;background:-webkit-gradient(linear,0 0,0 bottom,from(white),to(#ddd));background:-moz-linear-gradient(white,#ddd);background:linear-gradient(white,#ddd)}.file_list{margin-bottom:18px}.file_list--responsive{overflow-x:auto;overflow-y:hidden}a.src_link{background:url("./magnify.png") no-repeat left 50%;padding-left:18px}tr,td{margin:0;padding:0}th{white-space:nowrap}th.ui-state-default{cursor:pointer}th span.ui-icon{float:left}td{padding:4px 8px}td.strong{font-weight:bold}.cell--number{text-align:right}.source_table h3,.source_table h4{padding:0;margin:0;margin-bottom:4px}.source_table .header{padding:10px}.source_table pre{margin:0;padding:0;white-space:normal;color:#000;font-family:"Monaco","Inconsolata","Consolas",monospace}.source_table code{color:#000;font-family:"Monaco","Inconsolata","Consolas",monospace}.source_table pre{background-color:#333}.source_table pre ol{margin:0;padding:0;margin-left:45px;font-size:12px;color:white}.source_table pre li{margin:0;padding:2px 6px;border-left:5px solid white}.source_table pre li code{white-space:pre;white-space:pre-wrap}.source_table pre .hits{float:right;margin-left:10px;padding:2px 4px;background-color:#444;background:-webkit-gradient(linear,0 0,0 bottom,from(#222),to(#666));background:-moz-linear-gradient(#222,#666);background:linear-gradient(#222,#666);color:white;font-family:Helvetica,"Helvetica Neue",Arial,sans-serif;font-size:10px;font-weight:bold;text-align:center;border-radius:6px}#footer{color:#ddd;font-size:12px;font-weight:bold;margin-top:12px;text-align:right}#footer a{color:#eee;text-decoration:underline}#footer a:hover{color:#fff;text-decoration:none}.green{color:#090}.red{color:#900}.yellow{color:#da0}.blue{color:blue}thead th{background:white}.source_table .covered{border-color:#090}.source_table .missed{border-color:#900}.source_table .never{border-color:black}.source_table .skipped{border-color:#fc0}.source_table .missed-branch{border-color:#bf0000}.source_table .covered:nth-child(odd){background-color:#cdf2cd}.source_table .covered:nth-child(even){background-color:#dbf2db}.source_table .missed:nth-child(odd){background-color:#f7c0c0}.source_table .missed:nth-child(even){background-color:#f7cfcf}.source_table .never:nth-child(odd){background-color:#efefef}.source_table .never:nth-child(even){background-color:#f4f4f4}.source_table .skipped:nth-child(odd){background-color:#fbf0c0}.source_table .skipped:nth-child(even){background-color:#fbffcf}.source_table .missed-branch:nth-child(odd){background-color:#cc8e8e}.source_table .missed-branch:nth-child(even){background-color:#cc6e6e}
|