bibtex-ruby 1.3.6 → 1.3.7

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.

Potentially problematic release.


This version of bibtex-ruby might be problematic. Click here for more details.

@@ -11,7 +11,7 @@ require 'strscan'
11
11
  module BibTeX
12
12
  class NameParser < Racc::Parser
13
13
 
14
- module_eval(<<'...end names.y/module_eval...', 'names.y', 80)
14
+ module_eval(<<'...end names.y/module_eval...', 'names.y', 78)
15
15
 
16
16
  def initialize(options = {})
17
17
  self.options.merge!(options)
@@ -134,48 +134,54 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 80)
134
134
  ##### State transition tables begin ###
135
135
 
136
136
  racc_action_table = [
137
- -13, -28, -10, -13, -30, 24, -13, -28, -29, -13,
138
- -30, -28, 19, -9, -29, 36, 14, -28, -11, 22,
139
- 35, 23, 22, 20, 23, 11, 18, 12, 33, 32,
140
- 34, 22, 35, 23, 22, 26, 23, 33, 32, 34,
141
- 33, 32, 34, 11, 7, 12, 11, 7, 12, 13 ]
137
+ -15, -27, -15, -29, 27, -28, -15, -27, -27, -29,
138
+ -15, -28, 36, 24, -27, 34, 33, 35, 21, 19,
139
+ 22, 10, 16, 11, 34, 33, 35, 34, 33, 35,
140
+ 10, 8, 11, 21, 28, 22, 34, 33, 35, 34,
141
+ 33, 35, 10, 8, 11, 21, 19, 22, 38, 23,
142
+ 13, 12 ]
142
143
 
143
144
  racc_action_check = [
144
- 20, 18, 20, 26, 12, 13, 20, 18, 11, 26,
145
- 12, 7, 6, 7, 11, 29, 2, 7, 21, 21,
146
- 21, 21, 8, 8, 8, 5, 5, 5, 31, 31,
147
- 31, 27, 27, 27, 16, 16, 16, 36, 36, 36,
148
- 19, 19, 19, 0, 0, 0, 14, 14, 14, 1 ]
145
+ 19, 16, 19, 11, 18, 10, 19, 16, 8, 11,
146
+ 8, 10, 26, 12, 8, 32, 32, 32, 6, 6,
147
+ 6, 5, 5, 5, 36, 36, 36, 27, 27, 27,
148
+ 13, 13, 13, 20, 20, 20, 38, 38, 38, 23,
149
+ 23, 23, 0, 0, 0, 15, 15, 15, 30, 7,
150
+ 2, 1 ]
149
151
 
150
152
  racc_action_pointer = [
151
- 40, 49, 10, nil, nil, 22, 10, 11, 19, nil,
152
- nil, 8, 4, 5, 43, nil, 31, nil, 1, 37,
153
- 0, 16, nil, nil, nil, nil, 3, 28, nil, 13,
154
- nil, 25, nil, nil, nil, nil, 34, nil, nil ]
153
+ 39, 51, 44, nil, nil, 18, 15, 47, 8, nil,
154
+ 5, 3, 13, 27, nil, 42, 1, nil, 2, 0,
155
+ 30, nil, nil, 36, nil, nil, 10, 24, nil, nil,
156
+ 46, nil, 12, nil, nil, nil, 21, nil, 33, nil,
157
+ nil, nil ]
155
158
 
156
159
  racc_action_default = [
157
- -1, -31, -2, -3, -5, -8, -31, -21, -31, -12,
158
- -17, -19, -20, -31, -31, -6, -31, -18, -21, -26,
159
- -23, -14, -19, -20, 39, -4, -23, -14, -7, -15,
160
- -24, -27, -28, -29, -30, -22, -26, -25, -16 ]
160
+ -1, -30, -2, -3, -5, -16, -30, -30, -12, -19,
161
+ -21, -22, -30, -30, -6, -30, -12, -20, -8, -13,
162
+ -16, -21, -22, -25, 42, -4, -7, -25, -14, -9,
163
+ -17, -23, -26, -27, -28, -29, -25, -10, -25, -24,
164
+ -11, -18 ]
161
165
 
162
166
  racc_goto_table = [
163
- 17, 29, 30, 3, 21, 28, 16, 15, 2, 1,
164
- nil, nil, 27, nil, 37, nil, 17, 25, 38, 30,
165
- nil, nil, 17 ]
167
+ 4, 17, 3, 20, 29, 14, 15, 2, 37, 18,
168
+ 41, 1, 20, 4, nil, 25, 17, 40, 26, nil,
169
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
170
+ nil, nil, 39 ]
166
171
 
167
172
  racc_goto_check = [
168
- 11, 10, 9, 3, 5, 7, 8, 4, 2, 1,
169
- nil, nil, 5, nil, 9, nil, 11, 3, 10, 9,
170
- nil, nil, 11 ]
173
+ 4, 10, 3, 5, 8, 4, 6, 2, 8, 7,
174
+ 9, 1, 5, 4, nil, 3, 10, 8, 7, nil,
175
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
176
+ nil, nil, 4 ]
171
177
 
172
178
  racc_goto_pointer = [
173
- nil, 9, 8, 3, 2, -4, nil, -14, 1, -17,
174
- -18, -5, nil ]
179
+ nil, 11, 7, 2, 0, -3, 1, 3, -19, -28,
180
+ -4, nil ]
175
181
 
176
182
  racc_goto_default = [
177
- nil, nil, nil, nil, 4, 5, 6, nil, 8, 9,
178
- nil, 10, 31 ]
183
+ nil, nil, nil, nil, 31, 5, 6, 7, nil, 30,
184
+ 9, 32 ]
179
185
 
180
186
  racc_reduce_table = [
181
187
  0, 0, :racc_error,
@@ -186,33 +192,32 @@ racc_reduce_table = [
186
192
  1, 11, :_reduce_5,
187
193
  2, 11, :_reduce_6,
188
194
  3, 11, :_reduce_7,
189
- 1, 14, :_reduce_8,
190
- 1, 14, :_reduce_9,
191
- 2, 14, :_reduce_10,
192
- 2, 14, :_reduce_11,
193
- 1, 12, :_reduce_12,
194
- 2, 12, :_reduce_13,
195
- 2, 12, :_reduce_14,
195
+ 2, 11, :_reduce_8,
196
+ 3, 11, :_reduce_9,
197
+ 4, 11, :_reduce_10,
198
+ 5, 11, :_reduce_11,
199
+ 1, 14, :_reduce_12,
200
+ 2, 14, :_reduce_13,
201
+ 3, 14, :_reduce_14,
196
202
  1, 15, :_reduce_15,
197
- 3, 15, :_reduce_16,
198
- 1, 13, :_reduce_17,
199
- 2, 13, :_reduce_18,
200
- 1, 19, :_reduce_19,
201
- 1, 19, :_reduce_20,
202
- 1, 16, :_reduce_21,
203
- 3, 16, :_reduce_22,
204
- 2, 16, :_reduce_23,
205
- 1, 20, :_reduce_24,
206
- 2, 20, :_reduce_25,
207
- 0, 18, :_reduce_26,
208
- 1, 18, :_reduce_27,
209
- 1, 17, :_reduce_28,
210
- 1, 17, :_reduce_29,
211
- 1, 17, :_reduce_30 ]
212
-
213
- racc_reduce_n = 31
214
-
215
- racc_shift_n = 39
203
+ 1, 15, :_reduce_16,
204
+ 1, 16, :_reduce_17,
205
+ 3, 16, :_reduce_18,
206
+ 1, 13, :_reduce_19,
207
+ 2, 13, :_reduce_20,
208
+ 1, 18, :_reduce_21,
209
+ 1, 18, :_reduce_22,
210
+ 1, 19, :_reduce_23,
211
+ 2, 19, :_reduce_24,
212
+ 0, 17, :_reduce_25,
213
+ 1, 17, :_reduce_26,
214
+ 1, 12, :_reduce_27,
215
+ 1, 12, :_reduce_28,
216
+ 1, 12, :_reduce_29 ]
217
+
218
+ racc_reduce_n = 30
219
+
220
+ racc_shift_n = 42
216
221
 
217
222
  racc_token_table = {
218
223
  false => 0,
@@ -257,12 +262,11 @@ Racc_token_to_s_table = [
257
262
  "result",
258
263
  "names",
259
264
  "name",
260
- "last",
265
+ "word",
261
266
  "u_words",
262
- "sort",
263
- "first",
264
267
  "von",
265
- "word",
268
+ "last",
269
+ "first",
266
270
  "opt_words",
267
271
  "u_word",
268
272
  "words" ]
@@ -303,154 +307,154 @@ module_eval(<<'.,.,', 'names.y', 35)
303
307
 
304
308
  module_eval(<<'.,.,', 'names.y', 37)
305
309
  def _reduce_5(val, _values, result)
306
- result = Name.new(:von => val[0][0], :last => val[0][1])
310
+ result = Name.new(:last => val[0])
307
311
  result
308
312
  end
309
313
  .,.,
310
314
 
311
315
  module_eval(<<'.,.,', 'names.y', 38)
312
316
  def _reduce_6(val, _values, result)
313
- result = Name.new(:first => val[0], :von => val[1][0], :last => val[1][1])
317
+ result = Name.new(:first => val[0], :last => val[1])
314
318
  result
315
319
  end
316
320
  .,.,
317
321
 
318
322
  module_eval(<<'.,.,', 'names.y', 39)
319
323
  def _reduce_7(val, _values, result)
320
- result = Name.new(:von => val[0][0], :last => val[0][1], :jr => val[2][0], :first => val[2][1])
324
+ result = Name.new(:first => val[0], :von => val[1], :last => val[2])
321
325
  result
322
326
  end
323
327
  .,.,
324
328
 
325
- module_eval(<<'.,.,', 'names.y', 41)
329
+ module_eval(<<'.,.,', 'names.y', 40)
326
330
  def _reduce_8(val, _values, result)
327
- result = [nil,val[0]]
331
+ result = Name.new(:von => val[0], :last => val[1])
328
332
  result
329
333
  end
330
334
  .,.,
331
335
 
332
- module_eval(<<'.,.,', 'names.y', 42)
336
+ module_eval(<<'.,.,', 'names.y', 41)
333
337
  def _reduce_9(val, _values, result)
334
- result = [nil,val[0]]
338
+ result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1])
335
339
  result
336
340
  end
337
341
  .,.,
338
342
 
339
- module_eval(<<'.,.,', 'names.y', 43)
343
+ module_eval(<<'.,.,', 'names.y', 42)
340
344
  def _reduce_10(val, _values, result)
341
- result = [val[0],val[1]]
345
+ result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1])
342
346
  result
343
347
  end
344
348
  .,.,
345
349
 
346
- module_eval(<<'.,.,', 'names.y', 44)
350
+ module_eval(<<'.,.,', 'names.y', 43)
347
351
  def _reduce_11(val, _values, result)
348
- result = [val[0],val[1]]
352
+ result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1])
349
353
  result
350
354
  end
351
355
  .,.,
352
356
 
353
- module_eval(<<'.,.,', 'names.y', 46)
357
+ module_eval(<<'.,.,', 'names.y', 45)
354
358
  def _reduce_12(val, _values, result)
355
- result = [nil,val[0]]
359
+ result = val[0]
356
360
  result
357
361
  end
358
362
  .,.,
359
363
 
360
- module_eval(<<'.,.,', 'names.y', 47)
364
+ module_eval(<<'.,.,', 'names.y', 46)
361
365
  def _reduce_13(val, _values, result)
362
- result = [val[0],val[1]]
366
+ result = val.join(' ')
363
367
  result
364
368
  end
365
369
  .,.,
366
370
 
367
- module_eval(<<'.,.,', 'names.y', 48)
371
+ module_eval(<<'.,.,', 'names.y', 47)
368
372
  def _reduce_14(val, _values, result)
369
- result = [val[0],val[1]]
373
+ result = val.join(' ')
370
374
  result
371
375
  end
372
376
  .,.,
373
377
 
374
- module_eval(<<'.,.,', 'names.y', 50)
378
+ module_eval(<<'.,.,', 'names.y', 49)
375
379
  def _reduce_15(val, _values, result)
376
- result = [nil,val[0]]
380
+ result = val[0]
377
381
  result
378
382
  end
379
383
  .,.,
380
384
 
381
- module_eval(<<'.,.,', 'names.y', 51)
385
+ module_eval(<<'.,.,', 'names.y', 50)
382
386
  def _reduce_16(val, _values, result)
383
- result = [val[0],val[2]]
387
+ result = val[0]
384
388
  result
385
389
  end
386
390
  .,.,
387
391
 
388
- module_eval(<<'.,.,', 'names.y', 53)
392
+ module_eval(<<'.,.,', 'names.y', 52)
389
393
  def _reduce_17(val, _values, result)
390
- result = val[0]
394
+ result = [nil,val[0]]
391
395
  result
392
396
  end
393
397
  .,.,
394
398
 
395
- module_eval(<<'.,.,', 'names.y', 54)
399
+ module_eval(<<'.,.,', 'names.y', 53)
396
400
  def _reduce_18(val, _values, result)
397
- result = val[0,2].join(' ')
401
+ result = [val[0],val[2]]
398
402
  result
399
403
  end
400
404
  .,.,
401
405
 
402
- module_eval(<<'.,.,', 'names.y', 56)
406
+ module_eval(<<'.,.,', 'names.y', 55)
403
407
  def _reduce_19(val, _values, result)
404
408
  result = val[0]
405
409
  result
406
410
  end
407
411
  .,.,
408
412
 
409
- module_eval(<<'.,.,', 'names.y', 57)
413
+ module_eval(<<'.,.,', 'names.y', 56)
410
414
  def _reduce_20(val, _values, result)
411
- result = val[0]
415
+ result = val[0,2].join(' ')
412
416
  result
413
417
  end
414
418
  .,.,
415
419
 
416
- module_eval(<<'.,.,', 'names.y', 59)
420
+ module_eval(<<'.,.,', 'names.y', 58)
417
421
  def _reduce_21(val, _values, result)
418
422
  result = val[0]
419
423
  result
420
424
  end
421
425
  .,.,
422
426
 
423
- module_eval(<<'.,.,', 'names.y', 60)
427
+ module_eval(<<'.,.,', 'names.y', 59)
424
428
  def _reduce_22(val, _values, result)
425
- result = val[0,3].join(' ')
429
+ result = val[0]
426
430
  result
427
431
  end
428
432
  .,.,
429
433
 
430
434
  module_eval(<<'.,.,', 'names.y', 61)
431
435
  def _reduce_23(val, _values, result)
432
- result = val[0,2].join(' ')
436
+ result = val[0]
433
437
  result
434
438
  end
435
439
  .,.,
436
440
 
437
- module_eval(<<'.,.,', 'names.y', 63)
441
+ module_eval(<<'.,.,', 'names.y', 62)
438
442
  def _reduce_24(val, _values, result)
439
- result = val[0]
443
+ result = val[0,2].join(' ')
440
444
  result
441
445
  end
442
446
  .,.,
443
447
 
444
448
  module_eval(<<'.,.,', 'names.y', 64)
445
449
  def _reduce_25(val, _values, result)
446
- result = val[0,2].join(' ')
450
+ result = nil
447
451
  result
448
452
  end
449
453
  .,.,
450
454
 
451
- module_eval(<<'.,.,', 'names.y', 66)
455
+ module_eval(<<'.,.,', 'names.y', 65)
452
456
  def _reduce_26(val, _values, result)
453
- result = nil
457
+ result = val[0]
454
458
  result
455
459
  end
456
460
  .,.,
@@ -462,27 +466,20 @@ module_eval(<<'.,.,', 'names.y', 67)
462
466
  end
463
467
  .,.,
464
468
 
465
- module_eval(<<'.,.,', 'names.y', 69)
469
+ module_eval(<<'.,.,', 'names.y', 68)
466
470
  def _reduce_28(val, _values, result)
467
471
  result = val[0]
468
472
  result
469
473
  end
470
474
  .,.,
471
475
 
472
- module_eval(<<'.,.,', 'names.y', 70)
476
+ module_eval(<<'.,.,', 'names.y', 69)
473
477
  def _reduce_29(val, _values, result)
474
478
  result = val[0]
475
479
  result
476
480
  end
477
481
  .,.,
478
482
 
479
- module_eval(<<'.,.,', 'names.y', 71)
480
- def _reduce_30(val, _values, result)
481
- result = val[0]
482
- result
483
- end
484
- .,.,
485
-
486
483
  def _reduce_none(val, _values, result)
487
484
  val[0]
488
485
  end
@@ -154,7 +154,7 @@ module BibTeX
154
154
  hash['family'] = family unless family.nil?
155
155
  hash['given'] = given unless given.nil?
156
156
  hash['suffix'] = suffix unless suffix.nil?
157
- hash['dropping-particle'] = prefix unless prefix.nil?
157
+ hash[options[:particle] || 'dropping-particle'] = prefix unless prefix.nil?
158
158
  hash
159
159
  end
160
160
 
@@ -35,18 +35,20 @@ rule
35
35
  names : name { result = [val[0]] }
36
36
  | names AND name { result << val[2] }
37
37
 
38
- name : last { result = Name.new(:von => val[0][0], :last => val[0][1]) }
39
- | u_words last { result = Name.new(:first => val[0], :von => val[1][0], :last => val[1][1]) }
40
- | sort COMMA first { result = Name.new(:von => val[0][0], :last => val[0][1], :jr => val[2][0], :first => val[2][1]) }
41
-
42
- sort : u_words { result = [nil,val[0]]}
43
- | LWORD { result = [nil,val[0]]}
44
- | von LWORD { result = [val[0],val[1]]}
45
- | von u_words { result = [val[0],val[1]]}
46
-
47
- last : word { result = [nil,val[0]]}
48
- | von LWORD { result = [val[0],val[1]]}
49
- | von u_words { result = [val[0],val[1]]}
38
+ name : word { result = Name.new(:last => val[0]) }
39
+ | u_words word { result = Name.new(:first => val[0], :last => val[1]) }
40
+ | u_words von last { result = Name.new(:first => val[0], :von => val[1], :last => val[2]) }
41
+ | von last { result = Name.new(:von => val[0], :last => val[1]) }
42
+ | last COMMA first { result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1]) }
43
+ | von last COMMA first { result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1]) }
44
+ | u_words von last COMMA first { result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1]) }
45
+
46
+ von : LWORD { result = val[0] }
47
+ | von LWORD { result = val.join(' ') }
48
+ | von u_words LWORD { result = val.join(' ') }
49
+
50
+ last : LWORD { result = val[0] }
51
+ | u_words { result = val[0] }
50
52
 
51
53
  first : opt_words { result = [nil,val[0]] }
52
54
  | opt_words COMMA opt_words { result = [val[0],val[2]] }
@@ -57,10 +59,6 @@ rule
57
59
  u_word : UWORD { result = val[0] }
58
60
  | PWORD { result = val[0] }
59
61
 
60
- von : LWORD { result = val[0] }
61
- | von u_words LWORD { result = val[0,3].join(' ') }
62
- | von LWORD { result = val[0,2].join(' ') }
63
-
64
62
  words : word { result = val[0] }
65
63
  | words word { result = val[0,2].join(' ') }
66
64
 
@@ -18,6 +18,6 @@
18
18
 
19
19
  module BibTeX
20
20
  module Version
21
- STRING = '1.3.6'.freeze
21
+ STRING = '1.3.7'.freeze
22
22
  end
23
23
  end
@@ -73,6 +73,25 @@ module BibTeX
73
73
  assert_equal 'Melville', e['author'][0]['family']
74
74
  end
75
75
  end
76
+
77
+ context 'citeproc export' do
78
+ setup do
79
+ @entry = Entry.new do |e|
80
+ e.type = :book
81
+ e.key = :key
82
+ e.author = 'van Beethoven, Ludwig'
83
+ e.parse_names
84
+ end
85
+ end
86
+
87
+ should 'use dropping-particle by default' do
88
+ assert_equal 'van', @entry.to_citeproc['author'][0]['dropping-particle']
89
+ end
90
+
91
+ should 'accept option to use non-dropping-particle' do
92
+ assert_equal 'van', @entry.to_citeproc(:particle => 'non-dropping-particle')['author'][0]['non-dropping-particle']
93
+ end
94
+ end
76
95
 
77
96
  def test_simple
78
97
  bib = BibTeX::Bibliography.open(Test.fixtures(:entry), :debug => false)