swissparser 0.11.1 → 1.0.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.
- data/.gitignore +9 -0
- data/CHANGELOG.rdoc +9 -0
- data/README.rdoc +28 -17
- data/Rakefile +2 -2
- data/Rakefile.compiled.rbc +622 -0
- data/examples/kegg_demo.rb +39 -63
- data/examples/uniprot.rb +85 -0
- data/features/basic_parsing.feature +79 -30
- data/features/extra.feature +52 -0
- data/features/step_definitions/basic_steps.rb +84 -0
- data/features/step_definitions/sugar_steps.rb +71 -0
- data/lib/swissparser.rb +39 -194
- data/lib/swissparser.rbc +928 -0
- data/lib/swissparser/entries.rb +137 -0
- data/lib/swissparser/entries.rbc +2360 -0
- data/lib/swissparser/rules.rb +112 -0
- data/lib/swissparser/rules.rbc +1699 -0
- metadata +55 -32
- data/benchmarks/whole_uniprot.txt +0 -7
- data/examples/parse_from_uri.rb +0 -88
- data/examples/signal_demo.rb +0 -100
- data/examples/tutorial_1.rb +0 -88
- data/examples/tutorial_2.rb +0 -65
- data/examples/uniprot_param_demo.rb +0 -85
- data/features/parser_extension.feature +0 -83
- data/features/parsing_context.feature +0 -48
- data/features/polite.feature +0 -16
- data/features/step_definitions/core.rb +0 -71
- data/features/step_definitions/definitions.rb +0 -68
- data/features/step_definitions/extra.rb +0 -56
- data/lib/swiss_parser.rb +0 -13
- data/lib/swissparser/parsing_context.rb +0 -60
- data/lib/swissparser/parsing_rules.rb +0 -39
data/.gitignore
ADDED
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.0.0 / 2010-01-11
|
2
|
+
|
3
|
+
* New release, the syntax for defining rules and parsers was simplified.
|
4
|
+
ATTENTION: this version is not backward compatible !
|
5
|
+
|
6
|
+
== 0.90.0 / 2009-12-30
|
7
|
+
|
8
|
+
* Complete rewrite to simplify parser definition.
|
9
|
+
|
1
10
|
== 0.11.1 / 2009-11-17
|
2
11
|
|
3
12
|
* 1 bug fix:
|
data/README.rdoc
CHANGED
@@ -4,48 +4,59 @@
|
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
7
|
-
Simple DSL to define parser for flat files formats common in
|
7
|
+
Simple DSL to define parser for flat files formats common in
|
8
|
+
biofinformatics, such as Swissprot, Uniprot, KEGG, TREMBL, etc.
|
8
9
|
|
9
|
-
|
10
|
+
SwissParser API was changed in its version 1.0.0 to simplify parser
|
11
|
+
definition. The code was tested on entire Uniprot and KEGG releases
|
12
|
+
and functional testing guarantees that existing features will not
|
13
|
+
break after an update.
|
14
|
+
|
15
|
+
=== Compatibility with 0.x versions
|
10
16
|
|
11
|
-
|
12
|
-
|
17
|
+
The 1.x versions represent an API change which is *not* *backward*
|
18
|
+
*compatible*. However, the rules definitions and helper need small
|
19
|
+
changes. A wiki page will soon give instructions for updating your
|
20
|
+
parsers.
|
21
|
+
|
22
|
+
== FEATURES:
|
13
23
|
|
14
24
|
* Defines parsers with a clear and compact declarative syntax.
|
15
25
|
* The whole parsing workflow is configurable.
|
16
26
|
* Able to parse remote files accessible from a web or an FTP server.
|
17
27
|
* Users can create new parsers by extending existing parsers.
|
18
|
-
*
|
28
|
+
* Parser rules have access to user defined helper methods.
|
19
29
|
|
20
30
|
== USAGE:
|
21
31
|
|
22
|
-
See
|
32
|
+
See:
|
33
|
+
|
34
|
+
* tutorials: http://wiki.github.com/paradigmatic/SwissParser
|
35
|
+
* examples: http://github.com/paradigmatic/SwissParser/tree/master/examples/
|
23
36
|
|
24
37
|
== REQUIREMENTS:
|
25
38
|
|
26
39
|
SwissParser uses only pure standard ruby.
|
27
40
|
|
28
|
-
Thanks to
|
41
|
+
Thanks to rvm it was successfuly tested with
|
29
42
|
versions:
|
30
43
|
|
31
|
-
* 1.
|
32
|
-
* 1.
|
33
|
-
* 1.
|
34
|
-
* jruby-bin-1.3.1
|
44
|
+
* ruby-1.8.7-p302
|
45
|
+
* ruby-1.9.2-p0
|
46
|
+
* jruby-1.5.2
|
35
47
|
|
36
|
-
If you want to participate in SwissParser developpement, you will need the gem *bones*.
|
37
48
|
|
38
|
-
|
49
|
+
No other gems are required to use it. However, if you want to
|
50
|
+
participate in SwissParser developpement, you will need the gem
|
51
|
+
*bones*, *rspec* and *cucumber*.
|
39
52
|
|
40
|
-
|
41
|
-
rubyforge, you will need to change the sources as explained here:
|
42
|
-
http://gemcutter.org/pages/gem_docs
|
53
|
+
== INSTALL:
|
43
54
|
|
44
55
|
Then you can simply install SwissParser with:
|
45
56
|
|
46
57
|
gem install swissparser
|
47
58
|
|
48
|
-
and start
|
59
|
+
and start parsers definitions by requiring it:
|
49
60
|
|
50
61
|
require 'swissparser'
|
51
62
|
|
data/Rakefile
CHANGED
@@ -12,8 +12,8 @@ require 'cucumber/rake/task'
|
|
12
12
|
task :default => :features
|
13
13
|
|
14
14
|
Cucumber::Rake::Task.new(:features) do |t|
|
15
|
-
t.cucumber_opts = "--format pretty"
|
16
|
-
t.rcov = true
|
15
|
+
t.cucumber_opts = "--format pretty --tags ~@skip"
|
16
|
+
#t.rcov = true
|
17
17
|
end
|
18
18
|
|
19
19
|
CLOBBER << "coverage/"
|
@@ -0,0 +1,622 @@
|
|
1
|
+
!RBIX
|
2
|
+
0
|
3
|
+
x
|
4
|
+
M
|
5
|
+
1
|
6
|
+
n
|
7
|
+
n
|
8
|
+
x
|
9
|
+
10
|
10
|
+
__script__
|
11
|
+
i
|
12
|
+
140
|
13
|
+
26
|
14
|
+
93
|
15
|
+
0
|
16
|
+
15
|
17
|
+
29
|
18
|
+
18
|
19
|
+
0
|
20
|
+
5
|
21
|
+
7
|
22
|
+
0
|
23
|
+
64
|
24
|
+
47
|
25
|
+
49
|
26
|
+
1
|
27
|
+
1
|
28
|
+
30
|
29
|
+
8
|
30
|
+
52
|
31
|
+
26
|
32
|
+
93
|
33
|
+
1
|
34
|
+
15
|
35
|
+
24
|
36
|
+
13
|
37
|
+
45
|
38
|
+
2
|
39
|
+
3
|
40
|
+
12
|
41
|
+
49
|
42
|
+
4
|
43
|
+
1
|
44
|
+
10
|
45
|
+
35
|
46
|
+
8
|
47
|
+
47
|
48
|
+
15
|
49
|
+
5
|
50
|
+
7
|
51
|
+
5
|
52
|
+
64
|
53
|
+
47
|
54
|
+
49
|
55
|
+
6
|
56
|
+
1
|
57
|
+
25
|
58
|
+
8
|
59
|
+
52
|
60
|
+
15
|
61
|
+
92
|
62
|
+
1
|
63
|
+
27
|
64
|
+
34
|
65
|
+
92
|
66
|
+
0
|
67
|
+
27
|
68
|
+
15
|
69
|
+
5
|
70
|
+
7
|
71
|
+
7
|
72
|
+
64
|
73
|
+
47
|
74
|
+
49
|
75
|
+
8
|
76
|
+
1
|
77
|
+
15
|
78
|
+
5
|
79
|
+
7
|
80
|
+
9
|
81
|
+
64
|
82
|
+
47
|
83
|
+
49
|
84
|
+
1
|
85
|
+
1
|
86
|
+
15
|
87
|
+
5
|
88
|
+
7
|
89
|
+
10
|
90
|
+
64
|
91
|
+
47
|
92
|
+
49
|
93
|
+
1
|
94
|
+
1
|
95
|
+
15
|
96
|
+
5
|
97
|
+
44
|
98
|
+
43
|
99
|
+
11
|
100
|
+
79
|
101
|
+
49
|
102
|
+
12
|
103
|
+
1
|
104
|
+
13
|
105
|
+
7
|
106
|
+
13
|
107
|
+
7
|
108
|
+
14
|
109
|
+
49
|
110
|
+
15
|
111
|
+
2
|
112
|
+
15
|
113
|
+
47
|
114
|
+
49
|
115
|
+
16
|
116
|
+
1
|
117
|
+
15
|
118
|
+
45
|
119
|
+
17
|
120
|
+
18
|
121
|
+
43
|
122
|
+
19
|
123
|
+
43
|
124
|
+
20
|
125
|
+
7
|
126
|
+
14
|
127
|
+
56
|
128
|
+
21
|
129
|
+
50
|
130
|
+
22
|
131
|
+
1
|
132
|
+
15
|
133
|
+
45
|
134
|
+
23
|
135
|
+
24
|
136
|
+
7
|
137
|
+
25
|
138
|
+
64
|
139
|
+
49
|
140
|
+
26
|
141
|
+
1
|
142
|
+
15
|
143
|
+
5
|
144
|
+
56
|
145
|
+
27
|
146
|
+
47
|
147
|
+
50
|
148
|
+
28
|
149
|
+
0
|
150
|
+
15
|
151
|
+
2
|
152
|
+
11
|
153
|
+
I
|
154
|
+
7
|
155
|
+
I
|
156
|
+
0
|
157
|
+
I
|
158
|
+
0
|
159
|
+
I
|
160
|
+
0
|
161
|
+
n
|
162
|
+
p
|
163
|
+
29
|
164
|
+
s
|
165
|
+
5
|
166
|
+
bones
|
167
|
+
x
|
168
|
+
7
|
169
|
+
require
|
170
|
+
x
|
171
|
+
9
|
172
|
+
LoadError
|
173
|
+
n
|
174
|
+
x
|
175
|
+
3
|
176
|
+
===
|
177
|
+
s
|
178
|
+
38
|
179
|
+
### Please install the "bones" gem ###
|
180
|
+
x
|
181
|
+
5
|
182
|
+
abort
|
183
|
+
s
|
184
|
+
3
|
185
|
+
lib
|
186
|
+
x
|
187
|
+
14
|
188
|
+
ensure_in_path
|
189
|
+
s
|
190
|
+
11
|
191
|
+
swissparser
|
192
|
+
s
|
193
|
+
18
|
194
|
+
cucumber/rake/task
|
195
|
+
x
|
196
|
+
4
|
197
|
+
Hash
|
198
|
+
x
|
199
|
+
16
|
200
|
+
new_from_literal
|
201
|
+
x
|
202
|
+
7
|
203
|
+
default
|
204
|
+
x
|
205
|
+
8
|
206
|
+
features
|
207
|
+
x
|
208
|
+
3
|
209
|
+
[]=
|
210
|
+
x
|
211
|
+
4
|
212
|
+
task
|
213
|
+
x
|
214
|
+
8
|
215
|
+
Cucumber
|
216
|
+
n
|
217
|
+
x
|
218
|
+
4
|
219
|
+
Rake
|
220
|
+
x
|
221
|
+
4
|
222
|
+
Task
|
223
|
+
M
|
224
|
+
1
|
225
|
+
p
|
226
|
+
2
|
227
|
+
x
|
228
|
+
9
|
229
|
+
for_block
|
230
|
+
t
|
231
|
+
n
|
232
|
+
x
|
233
|
+
9
|
234
|
+
__block__
|
235
|
+
i
|
236
|
+
17
|
237
|
+
57
|
238
|
+
19
|
239
|
+
0
|
240
|
+
15
|
241
|
+
20
|
242
|
+
0
|
243
|
+
7
|
244
|
+
0
|
245
|
+
64
|
246
|
+
13
|
247
|
+
18
|
248
|
+
2
|
249
|
+
49
|
250
|
+
1
|
251
|
+
1
|
252
|
+
15
|
253
|
+
11
|
254
|
+
I
|
255
|
+
5
|
256
|
+
I
|
257
|
+
1
|
258
|
+
I
|
259
|
+
1
|
260
|
+
I
|
261
|
+
1
|
262
|
+
n
|
263
|
+
p
|
264
|
+
2
|
265
|
+
s
|
266
|
+
29
|
267
|
+
--format pretty --tags ~@skip
|
268
|
+
x
|
269
|
+
14
|
270
|
+
cucumber_opts=
|
271
|
+
p
|
272
|
+
5
|
273
|
+
I
|
274
|
+
0
|
275
|
+
I
|
276
|
+
e
|
277
|
+
I
|
278
|
+
4
|
279
|
+
I
|
280
|
+
f
|
281
|
+
I
|
282
|
+
11
|
283
|
+
x
|
284
|
+
38
|
285
|
+
/home/falcone/prg/SwissParser/Rakefile
|
286
|
+
p
|
287
|
+
1
|
288
|
+
x
|
289
|
+
1
|
290
|
+
t
|
291
|
+
x
|
292
|
+
3
|
293
|
+
new
|
294
|
+
x
|
295
|
+
7
|
296
|
+
CLOBBER
|
297
|
+
n
|
298
|
+
s
|
299
|
+
9
|
300
|
+
coverage/
|
301
|
+
x
|
302
|
+
2
|
303
|
+
<<
|
304
|
+
M
|
305
|
+
1
|
306
|
+
p
|
307
|
+
2
|
308
|
+
x
|
309
|
+
9
|
310
|
+
for_block
|
311
|
+
t
|
312
|
+
n
|
313
|
+
x
|
314
|
+
9
|
315
|
+
__block__
|
316
|
+
i
|
317
|
+
112
|
318
|
+
5
|
319
|
+
7
|
320
|
+
0
|
321
|
+
64
|
322
|
+
47
|
323
|
+
49
|
324
|
+
1
|
325
|
+
1
|
326
|
+
15
|
327
|
+
5
|
328
|
+
7
|
329
|
+
2
|
330
|
+
64
|
331
|
+
47
|
332
|
+
49
|
333
|
+
3
|
334
|
+
1
|
335
|
+
15
|
336
|
+
5
|
337
|
+
7
|
338
|
+
4
|
339
|
+
64
|
340
|
+
47
|
341
|
+
49
|
342
|
+
5
|
343
|
+
1
|
344
|
+
15
|
345
|
+
5
|
346
|
+
7
|
347
|
+
6
|
348
|
+
64
|
349
|
+
47
|
350
|
+
49
|
351
|
+
7
|
352
|
+
1
|
353
|
+
15
|
354
|
+
5
|
355
|
+
45
|
356
|
+
8
|
357
|
+
9
|
358
|
+
43
|
359
|
+
10
|
360
|
+
47
|
361
|
+
49
|
362
|
+
11
|
363
|
+
1
|
364
|
+
15
|
365
|
+
5
|
366
|
+
47
|
367
|
+
48
|
368
|
+
12
|
369
|
+
7
|
370
|
+
13
|
371
|
+
64
|
372
|
+
7
|
373
|
+
14
|
374
|
+
64
|
375
|
+
35
|
376
|
+
2
|
377
|
+
35
|
378
|
+
1
|
379
|
+
13
|
380
|
+
18
|
381
|
+
2
|
382
|
+
49
|
383
|
+
15
|
384
|
+
1
|
385
|
+
15
|
386
|
+
15
|
387
|
+
5
|
388
|
+
7
|
389
|
+
16
|
390
|
+
64
|
391
|
+
47
|
392
|
+
49
|
393
|
+
17
|
394
|
+
1
|
395
|
+
15
|
396
|
+
5
|
397
|
+
7
|
398
|
+
18
|
399
|
+
64
|
400
|
+
47
|
401
|
+
49
|
402
|
+
19
|
403
|
+
1
|
404
|
+
15
|
405
|
+
5
|
406
|
+
7
|
407
|
+
20
|
408
|
+
64
|
409
|
+
47
|
410
|
+
49
|
411
|
+
21
|
412
|
+
1
|
413
|
+
15
|
414
|
+
5
|
415
|
+
47
|
416
|
+
48
|
417
|
+
22
|
418
|
+
7
|
419
|
+
23
|
420
|
+
64
|
421
|
+
7
|
422
|
+
24
|
423
|
+
64
|
424
|
+
35
|
425
|
+
2
|
426
|
+
49
|
427
|
+
25
|
428
|
+
1
|
429
|
+
11
|
430
|
+
I
|
431
|
+
4
|
432
|
+
I
|
433
|
+
0
|
434
|
+
I
|
435
|
+
0
|
436
|
+
I
|
437
|
+
0
|
438
|
+
I
|
439
|
+
-2
|
440
|
+
p
|
441
|
+
26
|
442
|
+
s
|
443
|
+
11
|
444
|
+
swissparser
|
445
|
+
x
|
446
|
+
4
|
447
|
+
name
|
448
|
+
s
|
449
|
+
12
|
450
|
+
paradigmatic
|
451
|
+
x
|
452
|
+
7
|
453
|
+
authors
|
454
|
+
s
|
455
|
+
23
|
456
|
+
paradigmatic@streum.org
|
457
|
+
x
|
458
|
+
5
|
459
|
+
email
|
460
|
+
s
|
461
|
+
42
|
462
|
+
http://github.com/paradigmatic/SwissParser
|
463
|
+
x
|
464
|
+
3
|
465
|
+
url
|
466
|
+
x
|
467
|
+
5
|
468
|
+
Swiss
|
469
|
+
n
|
470
|
+
x
|
471
|
+
7
|
472
|
+
VERSION
|
473
|
+
x
|
474
|
+
7
|
475
|
+
version
|
476
|
+
x
|
477
|
+
3
|
478
|
+
gem
|
479
|
+
s
|
480
|
+
8
|
481
|
+
cucumber
|
482
|
+
s
|
483
|
+
6
|
484
|
+
>= 0.4
|
485
|
+
x
|
486
|
+
25
|
487
|
+
development_dependencies=
|
488
|
+
s
|
489
|
+
11
|
490
|
+
README.rdoc
|
491
|
+
x
|
492
|
+
11
|
493
|
+
readme_file
|
494
|
+
s
|
495
|
+
14
|
496
|
+
CHANGELOG.rdoc
|
497
|
+
x
|
498
|
+
12
|
499
|
+
history_file
|
500
|
+
s
|
501
|
+
10
|
502
|
+
.gitignore
|
503
|
+
x
|
504
|
+
11
|
505
|
+
ignore_file
|
506
|
+
x
|
507
|
+
4
|
508
|
+
rdoc
|
509
|
+
s
|
510
|
+
9
|
511
|
+
examples/
|
512
|
+
s
|
513
|
+
9
|
514
|
+
features/
|
515
|
+
x
|
516
|
+
7
|
517
|
+
exclude
|
518
|
+
p
|
519
|
+
23
|
520
|
+
I
|
521
|
+
0
|
522
|
+
I
|
523
|
+
15
|
524
|
+
I
|
525
|
+
0
|
526
|
+
I
|
527
|
+
16
|
528
|
+
I
|
529
|
+
9
|
530
|
+
I
|
531
|
+
17
|
532
|
+
I
|
533
|
+
12
|
534
|
+
I
|
535
|
+
18
|
536
|
+
I
|
537
|
+
1b
|
538
|
+
I
|
539
|
+
19
|
540
|
+
I
|
541
|
+
24
|
542
|
+
I
|
543
|
+
1a
|
544
|
+
I
|
545
|
+
2f
|
546
|
+
I
|
547
|
+
1b
|
548
|
+
I
|
549
|
+
45
|
550
|
+
I
|
551
|
+
1c
|
552
|
+
I
|
553
|
+
4e
|
554
|
+
I
|
555
|
+
1d
|
556
|
+
I
|
557
|
+
57
|
558
|
+
I
|
559
|
+
1e
|
560
|
+
I
|
561
|
+
60
|
562
|
+
I
|
563
|
+
1f
|
564
|
+
I
|
565
|
+
70
|
566
|
+
x
|
567
|
+
38
|
568
|
+
/home/falcone/prg/SwissParser/Rakefile
|
569
|
+
p
|
570
|
+
0
|
571
|
+
x
|
572
|
+
5
|
573
|
+
Bones
|
574
|
+
p
|
575
|
+
21
|
576
|
+
I
|
577
|
+
0
|
578
|
+
I
|
579
|
+
2
|
580
|
+
I
|
581
|
+
17
|
582
|
+
I
|
583
|
+
3
|
584
|
+
I
|
585
|
+
24
|
586
|
+
I
|
587
|
+
4
|
588
|
+
I
|
589
|
+
38
|
590
|
+
I
|
591
|
+
7
|
592
|
+
I
|
593
|
+
41
|
594
|
+
I
|
595
|
+
8
|
596
|
+
I
|
597
|
+
4a
|
598
|
+
I
|
599
|
+
a
|
600
|
+
I
|
601
|
+
53
|
602
|
+
I
|
603
|
+
c
|
604
|
+
I
|
605
|
+
69
|
606
|
+
I
|
607
|
+
e
|
608
|
+
I
|
609
|
+
78
|
610
|
+
I
|
611
|
+
13
|
612
|
+
I
|
613
|
+
82
|
614
|
+
I
|
615
|
+
15
|
616
|
+
I
|
617
|
+
8c
|
618
|
+
x
|
619
|
+
38
|
620
|
+
/home/falcone/prg/SwissParser/Rakefile
|
621
|
+
p
|
622
|
+
0
|