regexp-examples 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b60b844e84384e758c2f1eafe5a667d139e6003
4
- data.tar.gz: 54b4a5741642eb3cf32be182f191ef910c835c96
3
+ metadata.gz: 97f98bdeee2363a4103134a035ccac28f1e6a295
4
+ data.tar.gz: 2287c4ba5ab2503b11d365a8c63d37bef36fedb6
5
5
  SHA512:
6
- metadata.gz: e2dc8496cb6d45555b8da957c178cbc0e9be86ca9d769275c2f5bf74ef4f67fe5bdab47a0458527fc8ea4e4ee5621377541e470072313b34f5d1c5ec0b50b4cb
7
- data.tar.gz: 63c4765a9704387dc85cec23537717416403e96bcfb469649ab4a1d6d09993ddab75366af55f792f8ea8a3530f6dc5b2f48f3018ff2b1429c36c27ff204bd446
6
+ metadata.gz: 461ae18a43b65a36cb04c6f5036c2a63ae8ea159820eb9bb02b7267b9b7718b474e6eae480afae8f9f89fb9c0231399c8388ac12179f603288810aa6c112a2a5
7
+ data.tar.gz: 883b05b33bfec6f6a30ca6534fe86fed248f9f24b9a6c1c87f2e797f8a98dbda02fb66db673bc9c889f7938003ae03a2e0ec58d5e92a34af83f82f4ae4b4c9c6
data/README.md CHANGED
@@ -14,11 +14,8 @@ or a huge number of possible matches, such as `/.\w/`, then only a subset of the
14
14
 
15
15
  ```ruby
16
16
  /a*/.examples #=> [''. 'a', 'aa']
17
- /b+/.examples #=> ['b', 'bb']
17
+ /ab+/.examples #=> ['ab', 'abb', 'abbb']
18
18
  /this|is|awesome/.examples #=> ['this', 'is', 'awesome']
19
- /foo-.{1,}-bar/.examples #=> ['foo-a-bar', 'foo-b-bar', 'foo-c-bar', 'foo-d-bar', 'foo-e-bar',
20
- # 'foo-aa-bar', 'foo-bb-bar', 'foo-cc-bar', 'foo-dd-bar', 'foo-ee-bar', 'foo-aaa-bar', 'foo-bbb-bar',
21
- # 'foo-ccc-bar', 'foo-ddd-bar', 'foo-eee-bar']
22
19
  /https?:\/\/(www\.)?github\.com/.examples #=> ['http://github.com',
23
20
  # 'http://www.github.com', 'https://github.com', 'https://www.github.com']
24
21
  /(I(N(C(E(P(T(I(O(N)))))))))*/.examples #=> ["", "INCEPTION", "INCEPTIONINCEPTION"]
@@ -29,7 +26,7 @@ or a huge number of possible matches, such as `/.\w/`, then only a subset of the
29
26
 
30
27
  ## Supported syntax
31
28
 
32
- * All forms of repeaters (quantifiers), e.g. `/a*/`, `/a+/`, `/a?/`, `/a{1,4}/`, `/a{3,}/`, `a{,2}`
29
+ * All forms of repeaters (quantifiers), e.g. `/a*/`, `/a+/`, `/a?/`, `/a{1,4}/`, `/a{3,}/`, `/a{,2}/`
33
30
  * Boolean "Or" groups, e.g. `/a|b|c/`
34
31
  * Character sets (inluding ranges and negation!), e.g. `/[abc]/`, `/[A-Z0-9]/`, `/[^a-z]/`, `/[\w\s\b]/`
35
32
  * Escaped characters, e.g. `/\n/`, `/\w/`, `/\D/` (and so on...)
@@ -66,6 +63,16 @@ Using any of the following will raise a RegexpExamples::IllegalSyntax exception:
66
63
 
67
64
  (Note: Backreferences are not really "regular" either, but I got these to work with a bit of hackery!)
68
65
 
66
+ ## Known Bugs
67
+
68
+ There are a few obscure bugs that have yet to be resolved:
69
+
70
+ * Various (weird!) legal patterns do not get parsed correctly, such as `/[[wtf]]/.examples` - To solve this, I'll probably have to dig deep into the Ruby source code and imitate the actual Regex parser more closely.
71
+
72
+ * Not all examples are shown for repeated groups, e.g. `/[ab]{2}/.examples` does not contain `"ab"` or `"ba"`. This is due to a flaw in the current parser design, and will be fixed in the next major release.
73
+
74
+ * Similarly, examples like `/(a){2} \1/.examples #=> ["aa aa"]` do not quite work properly, as the backreference is saved as `"aa"`, rather than just `"a"`. This bug is closely related to the one above.
75
+
69
76
  ## Installation
70
77
 
71
78
  Add this line to your application's Gemfile:
@@ -16,19 +16,27 @@
16
16
  null,
17
17
  null,
18
18
  1,
19
- 320,
20
- 320,
21
- 191,
22
- 264,
19
+ 353,
20
+ 353,
21
+ 205,
22
+ 295,
23
+ null,
24
+ null,
25
+ null,
26
+ 1,
27
+ 295,
28
+ 295,
29
+ null,
23
30
  null,
31
+ 295,
24
32
  null,
25
33
  null,
26
34
  1,
27
- 264,
28
- 264,
29
35
  null,
36
+ 208,
37
+ 107,
38
+ 107,
30
39
  null,
31
- 264,
32
40
  null,
33
41
  null,
34
42
  null
@@ -38,48 +46,48 @@
38
46
  1,
39
47
  1,
40
48
  1,
41
- 361,
49
+ 394,
42
50
  null,
43
51
  null,
44
52
  1,
45
- 320,
46
- 320,
47
- 320,
48
- 350,
49
- 464,
53
+ 353,
54
+ 353,
55
+ 353,
56
+ 391,
57
+ 499,
50
58
  null,
51
59
  null,
52
- 320,
60
+ 353,
53
61
  null,
54
62
  null,
55
63
  null,
56
64
  1,
57
65
  1,
58
- 336,
66
+ 366,
59
67
  null,
60
68
  null,
61
69
  1,
62
- 295,
70
+ 325,
63
71
  null,
64
72
  null,
65
73
  null,
66
74
  1,
67
75
  1,
68
- 5,
76
+ 6,
69
77
  null,
70
78
  null,
71
79
  1,
72
- 5,
80
+ 6,
73
81
  null,
74
82
  null,
75
83
  null,
76
84
  1,
77
85
  1,
78
- 4,
86
+ 5,
79
87
  null,
80
88
  null,
81
89
  1,
82
- 4,
90
+ 5,
83
91
  null,
84
92
  null,
85
93
  null,
@@ -95,19 +103,25 @@
95
103
  null,
96
104
  1,
97
105
  1,
98
- 5,
99
- 5,
100
- 5,
106
+ 6,
107
+ 6,
108
+ 6,
109
+ null,
101
110
  2,
102
- 3,
111
+ 4,
103
112
  1,
104
113
  null,
105
- 2,
114
+ 3,
106
115
  null,
107
116
  null,
108
117
  null,
109
118
  1,
110
- 5,
119
+ 6,
120
+ null,
121
+ null,
122
+ 1,
123
+ 1,
124
+ 2,
111
125
  null,
112
126
  null,
113
127
  null,
@@ -117,11 +131,11 @@
117
131
  1,
118
132
  1,
119
133
  1,
120
- 76,
121
- 172,
134
+ 89,
135
+ 183,
122
136
  28,
123
137
  null,
124
- 172,
138
+ 183,
125
139
  null,
126
140
  null,
127
141
  null,
@@ -146,6 +160,12 @@
146
160
  "/home/tom/git/regexp-examples/lib/regexp-examples/constants.rb": [
147
161
  1,
148
162
  null,
163
+ null,
164
+ null,
165
+ null,
166
+ null,
167
+ null,
168
+ null,
149
169
  1,
150
170
  null,
151
171
  null,
@@ -158,9 +178,8 @@
158
178
  1,
159
179
  1,
160
180
  1,
161
- null,
162
- null,
163
- 39,
181
+ 37,
182
+ 1,
164
183
  1,
165
184
  1,
166
185
  null,
@@ -192,38 +211,40 @@
192
211
  1,
193
212
  1,
194
213
  1,
195
- 93,
196
- 93,
197
- 93,
214
+ 106,
215
+ 106,
216
+ 106,
198
217
  null,
199
218
  null,
200
219
  1,
201
- 141,
202
- 141,
203
- 420,
204
- 402,
205
- 361,
206
- 361,
207
- 361,
220
+ 157,
221
+ 157,
222
+ 453,
223
+ 435,
224
+ 394,
225
+ 9,
208
226
  null,
209
- 123,
227
+ 385,
228
+ 385,
229
+ null,
230
+ 130,
210
231
  null,
211
232
  null,
212
233
  1,
213
234
  null,
214
235
  1,
215
- 420,
216
- 420,
236
+ 453,
237
+ 453,
217
238
  null,
218
239
  46,
219
240
  null,
220
241
  41,
221
242
  null,
222
- 16,
243
+ 27,
223
244
  null,
224
245
  4,
225
246
  null,
226
- 6,
247
+ 9,
227
248
  null,
228
249
  63,
229
250
  null,
@@ -239,9 +260,9 @@
239
260
  1,
240
261
  null,
241
262
  null,
242
- 240,
263
+ 259,
243
264
  null,
244
- 402,
265
+ 435,
245
266
  null,
246
267
  null,
247
268
  1,
@@ -257,6 +278,9 @@
257
278
  14,
258
279
  null,
259
280
  null,
281
+ null,
282
+ null,
283
+ null,
260
284
  8,
261
285
  8,
262
286
  null,
@@ -288,26 +312,25 @@
288
312
  null,
289
313
  null,
290
314
  2,
291
- null,
292
315
  63,
293
316
  53,
294
317
  null,
295
318
  null,
296
319
  1,
297
- 361,
298
- 361,
320
+ 385,
321
+ 385,
299
322
  null,
300
- 5,
323
+ 6,
301
324
  null,
302
- 4,
325
+ 5,
303
326
  null,
304
327
  11,
305
328
  null,
306
- 5,
329
+ 6,
307
330
  null,
308
- 336,
331
+ 357,
309
332
  null,
310
- 361,
333
+ 385,
311
334
  null,
312
335
  null,
313
336
  1,
@@ -339,27 +362,27 @@
339
362
  null,
340
363
  null,
341
364
  1,
342
- 16,
365
+ 27,
343
366
  1,
344
367
  null,
345
- 15,
346
- 15,
347
- 15,
368
+ 26,
369
+ 26,
370
+ 26,
348
371
  null,
349
372
  null,
350
373
  1,
351
374
  1,
352
375
  null,
353
376
  null,
354
- 15,
377
+ 26,
355
378
  null,
356
379
  null,
357
380
  null,
358
381
  null,
359
- 43,
360
- 43,
382
+ 105,
383
+ 105,
361
384
  null,
362
- 15,
385
+ 26,
363
386
  null,
364
387
  null,
365
388
  1,
@@ -367,14 +390,14 @@
367
390
  null,
368
391
  null,
369
392
  1,
370
- 6,
371
- 6,
372
- 6,
393
+ 9,
394
+ 9,
395
+ 9,
373
396
  null,
374
397
  null,
375
398
  null,
376
399
  1,
377
- 261,
400
+ 280,
378
401
  null,
379
402
  null,
380
403
  1,
@@ -395,13 +418,13 @@
395
418
  null,
396
419
  null,
397
420
  1,
398
- 5,
399
- 5,
421
+ 6,
422
+ 6,
400
423
  null,
401
424
  null,
402
425
  1,
403
- 4,
404
- 4,
426
+ 5,
427
+ 5,
405
428
  null,
406
429
  null,
407
430
  1,
@@ -410,20 +433,20 @@
410
433
  null,
411
434
  null,
412
435
  1,
413
- 5,
414
- 5,
415
- 5,
416
- 5,
417
- 5,
418
- 5,
436
+ 6,
437
+ 6,
438
+ 6,
439
+ 6,
440
+ 6,
441
+ 6,
419
442
  null,
420
443
  null,
421
444
  1,
422
- 336,
445
+ 357,
423
446
  null,
424
447
  null,
425
448
  1,
426
- 294,
449
+ 306,
427
450
  null,
428
451
  null,
429
452
  null,
@@ -437,68 +460,75 @@
437
460
  1,
438
461
  1,
439
462
  1,
440
- 1760,
441
- 1760,
442
- 1760,
443
- 122,
463
+ 1882,
464
+ 1882,
465
+ 1882,
466
+ 142,
444
467
  null,
445
- 1760,
468
+ 1882,
446
469
  null,
447
470
  null,
448
471
  1,
449
- 1775,
472
+ 1939,
450
473
  null,
451
474
  null,
452
475
  null,
453
476
  null,
454
477
  1,
455
- 464,
478
+ 499,
456
479
  null,
457
480
  null,
458
481
  null,
459
482
  1,
460
483
  1,
461
- 261,
484
+ 280,
462
485
  null,
463
486
  1,
464
- 223,
487
+ 242,
465
488
  null,
466
489
  null,
467
490
  null,
468
491
  1,
469
492
  1,
470
- 29,
471
- 29,
472
- 1,
473
- 1,
493
+ 40,
494
+ 40,
495
+ 11,
496
+ 11,
474
497
  null,
475
- 28,
498
+ 29,
476
499
  null,
477
500
  null,
478
- 29,
479
- 29,
501
+ 40,
502
+ 40,
480
503
  null,
481
504
  null,
482
505
  1,
483
506
  null,
484
- 29,
485
- 29,
486
- 29,
487
- 29,
507
+ 40,
508
+ 40,
509
+ 40,
510
+ 40,
488
511
  null,
489
- 29,
490
- 9,
512
+ 40,
513
+ null,
514
+ null,
515
+ 26,
516
+ 15,
517
+ 15,
518
+ null,
519
+ 11,
491
520
  null,
492
521
  null,
493
- 29,
494
- 29,
522
+ null,
523
+ 40,
524
+ 40,
495
525
  null,
496
526
  null,
497
527
  1,
498
- 29,
499
- 541,
500
- 14,
501
- 4,
528
+ 40,
529
+ 1430,
530
+ 32,
531
+ 22,
502
532
  null,
503
533
  1,
504
534
  null,
@@ -511,9 +541,17 @@
511
541
  null,
512
542
  null,
513
543
  1,
514
- 29,
515
- 573,
544
+ 40,
545
+ 590,
546
+ null,
547
+ null,
548
+ null,
549
+ 1,
550
+ 1,
551
+ 547,
552
+ 10,
516
553
  null,
554
+ 22,
517
555
  null,
518
556
  null,
519
557
  null,
@@ -538,7 +576,7 @@
538
576
  1,
539
577
  186,
540
578
  41,
541
- 101,
579
+ 113,
542
580
  null,
543
581
  null,
544
582
  null,
@@ -548,19 +586,17 @@
548
586
  null,
549
587
  1,
550
588
  1,
551
- 6,
552
- 6,
589
+ 9,
590
+ 9,
553
591
  null,
554
592
  null,
555
- 1,
556
- 6,
557
- 6,
558
593
  null,
559
- 6,
560
- 6,
594
+ 1,
595
+ 9,
596
+ 9,
561
597
  null,
562
- 6,
563
- 21,
598
+ 9,
599
+ 29,
564
600
  null,
565
601
  null,
566
602
  null,
@@ -582,12 +618,16 @@
582
618
  1,
583
619
  1,
584
620
  1,
585
- 93,
586
621
  null,
587
622
  null,
588
- 163,
589
- 76,
590
- 76,
623
+ null,
624
+ null,
625
+ null,
626
+ null,
627
+ 106,
628
+ null,
629
+ null,
630
+ 89,
591
631
  null,
592
632
  null,
593
633
  1,
@@ -597,11 +637,11 @@
597
637
  "/home/tom/git/regexp-examples/spec/regexp-examples_spec.rb": [
598
638
  1,
599
639
  1,
600
- 11,
601
- 76,
602
- 76,
603
- 76,
604
- 248,
640
+ 12,
641
+ 79,
642
+ 79,
643
+ 79,
644
+ 262,
605
645
  null,
606
646
  null,
607
647
  null,
@@ -628,6 +668,14 @@
628
668
  null,
629
669
  1,
630
670
  1,
671
+ 10,
672
+ 10,
673
+ null,
674
+ null,
675
+ null,
676
+ null,
677
+ 1,
678
+ 1,
631
679
  1,
632
680
  null,
633
681
  null,
@@ -666,6 +714,8 @@
666
714
  null,
667
715
  null,
668
716
  null,
717
+ null,
718
+ null,
669
719
  1,
670
720
  1,
671
721
  null,
@@ -719,6 +769,7 @@
719
769
  null,
720
770
  null,
721
771
  null,
772
+ null,
722
773
  1,
723
774
  1,
724
775
  null,
@@ -786,10 +837,31 @@
786
837
  null,
787
838
  null,
788
839
  null,
840
+ 1,
841
+ 1,
842
+ null,
843
+ null,
844
+ null,
845
+ null,
846
+ null,
847
+ null,
848
+ null,
849
+ null,
850
+ null,
851
+ null,
852
+ null,
853
+ null,
854
+ null,
855
+ 1,
856
+ 1,
857
+ null,
858
+ null,
859
+ null,
860
+ null,
789
861
  null,
790
862
  null
791
863
  ]
792
864
  },
793
- "timestamp": 1421523841
865
+ "timestamp": 1422115371
794
866
  }
795
867
  }