bibtex-ruby 4.4.3 → 4.4.4

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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 74b75d945fd5cc6a81ac55dba7f717ad3c16eb58
4
- data.tar.gz: 5f43b3ed36babe9cabf85374f27130efe0fa766b
3
+ metadata.gz: 3b875bae176a9021f96347ab6c87ac0b9602c429
4
+ data.tar.gz: 6beccf8dbef2c6f4462ad9ada4f15a8d71981019
5
5
  SHA512:
6
- metadata.gz: ae7e865b7d481e8e33d8f8c1a0f63bed70dd9e158ecef303f97f7880e71eac0e91a64ad66ddf981fbdbe414a0d3073c538e328fffaac69fa4cfa9c6315f6803b
7
- data.tar.gz: 200101b5f803bc061a28b90d2193632ab0eeb2fb59cb30bbfd6cc97b29aaf5fe3349507af88ada4107eae3d52ec27e54a0af4674b9b4772534c133e097000fa3
6
+ metadata.gz: f2cea409d83b8610f24d22e31fa190ac6480d21a2380edd955d377a2491b64baa39fc14655a04241ea4f94e03c77feca143400d4d23bb490fa0a4e47aabdefc0
7
+ data.tar.gz: 7555dc7ca3e8095b4cd2fa0e1e46d2ea570086792ca59039fd16e7c661102c8cfcc1870f81c19302c91360ceda932099231ecb9541b2b32d163aab130f6eda88
data/Gemfile CHANGED
@@ -62,5 +62,5 @@ end
62
62
 
63
63
  group :travis do
64
64
  # Gem is required at runtime for RBX!
65
- gem 'racc', :platforms => [:rbx]
65
+ gem 'racc', :platforms => [:ruby]
66
66
  end
@@ -50,7 +50,7 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 116)
50
50
  end
51
51
 
52
52
  def on_error(tid, val, vstack)
53
- BibTeX.log.error("Failed to parse BibTeX Name on value %s (%s) %s" % [val.inspect, token_to_str(tid) || '?', vstack.inspect])
53
+ BibTeX.log.debug("Failed to parse BibTeX Name on value %s (%s) %s" % [val.inspect, token_to_str(tid) || '?', vstack.inspect])
54
54
  end
55
55
 
56
56
  def scan(input)
@@ -168,34 +168,34 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 116)
168
168
  ##### State transition tables begin ###
169
169
 
170
170
  racc_action_table = [
171
- -37, 6, -25, -38, 26, -39, -37, -37, 34, -38,
172
- -38, -39, -39, -22, 42, -25, -37, 4, 5, -22,
173
- -22, -24, -37, -37, -22, 42, -25, -24, -24, -24,
174
- -22, -22, 16, 14, 17, -24, -24, -26, 24, 40,
175
- 25, -26, 24, 51, 25, 24, 23, 25, 16, 29,
176
- 17, 24, 32, 25, 24, 37, 25, 24, 32, 25,
177
- -20, -20, -20, 24, 43, 25, 49, 48, 50, 24,
178
- 37, 25, 49, 48, 50, 49, 48, 50, 49, 48,
179
- 50, 49, 48, 50, 4, 5, 54, 56, 54 ]
171
+ -22, 6, -25, -24, 42, -37, -22, -22, 56, -24,
172
+ -24, -37, -37, -37, 42, -25, -38, 34, -39, -37,
173
+ -37, -24, -38, -38, -39, -39, 54, -24, -24, -22,
174
+ 26, -25, -20, -20, -20, -22, -22, -26, 24, 51,
175
+ 25, -26, 24, 40, 25, 24, 43, 25, 49, 48,
176
+ 50, 49, 48, 50, 24, 37, 25, 49, 48, 50,
177
+ 16, 14, 17, 24, 23, 25, 49, 48, 50, 16,
178
+ 29, 17, 24, 32, 25, 24, 37, 25, 24, 32,
179
+ 25, 49, 48, 50, 4, 5, 4, 5, 54 ]
180
180
 
181
181
  racc_action_check = [
182
- 14, 1, 14, 16, 6, 17, 14, 14, 13, 16,
183
- 16, 17, 17, 23, 31, 23, 29, 0, 0, 23,
184
- 23, 40, 29, 29, 37, 36, 37, 40, 40, 51,
185
- 37, 37, 4, 4, 4, 51, 51, 21, 21, 21,
186
- 21, 38, 38, 38, 38, 5, 5, 5, 10, 10,
187
- 10, 11, 11, 11, 20, 20, 20, 28, 28, 28,
188
- 32, 32, 32, 33, 33, 33, 34, 34, 34, 39,
189
- 39, 39, 42, 42, 42, 47, 47, 47, 54, 54,
190
- 54, 56, 56, 56, 2, 2, 41, 45, 53 ]
182
+ 23, 1, 23, 51, 36, 29, 23, 23, 45, 51,
183
+ 51, 29, 29, 14, 31, 14, 16, 13, 17, 14,
184
+ 14, 40, 16, 16, 17, 17, 53, 40, 40, 37,
185
+ 6, 37, 32, 32, 32, 37, 37, 38, 38, 38,
186
+ 38, 21, 21, 21, 21, 33, 33, 33, 34, 34,
187
+ 34, 42, 42, 42, 20, 20, 20, 56, 56, 56,
188
+ 4, 4, 4, 5, 5, 5, 54, 54, 54, 10,
189
+ 10, 10, 11, 11, 11, 39, 39, 39, 28, 28,
190
+ 28, 47, 47, 47, 0, 0, 2, 2, 41 ]
191
191
 
192
192
  racc_action_pointer = [
193
- 11, 1, 78, nil, 29, 42, 4, nil, nil, nil,
194
- 45, 48, nil, 6, 0, nil, 3, 5, nil, nil,
195
- 51, 35, nil, 13, nil, nil, nil, nil, 54, 16,
196
- nil, 12, 57, 60, 63, nil, 23, 24, 39, 66,
197
- 21, 84, 69, nil, nil, 85, nil, 72, nil, nil,
198
- nil, 29, nil, 86, 75, nil, 78, nil, nil, nil ]
193
+ 78, 1, 80, nil, 57, 60, 30, nil, nil, nil,
194
+ 66, 69, nil, 15, 13, nil, 16, 18, nil, nil,
195
+ 51, 39, nil, 0, nil, nil, nil, nil, 75, 5,
196
+ nil, 12, 29, 42, 45, nil, 2, 29, 35, 72,
197
+ 21, 86, 48, nil, nil, 6, nil, 78, nil, nil,
198
+ nil, 3, nil, 24, 63, nil, 54, nil, nil, nil ]
199
199
 
200
200
  racc_action_default = [
201
201
  -1, -40, -2, -3, -40, -40, -40, -4, -5, -7,
@@ -206,22 +206,22 @@ racc_action_default = [
206
206
  -39, -21, -14, -40, -35, -17, -35, -34, -18, -28 ]
207
207
 
208
208
  racc_goto_table = [
209
- 9, 10, 21, 19, 31, 30, 27, 44, 11, 20,
210
- 3, 1, 7, 36, 28, 55, 30, 38, 35, 12,
211
- 22, 41, 2, 8, 18, 39, 59, 58, 30, nil,
212
- nil, nil, 53, 30, nil, nil, 38, 52, nil, nil,
213
- nil, nil, nil, 57 ]
209
+ 9, 10, 21, 19, 30, 31, 27, 3, 44, 7,
210
+ 12, 22, 1, 59, 36, 30, 55, 38, 35, 2,
211
+ 8, 18, 41, 11, 20, nil, nil, 30, 58, 28,
212
+ nil, nil, 30, 53, nil, nil, 38, 52, nil, nil,
213
+ 39, nil, nil, 57 ]
214
214
 
215
215
  racc_goto_check = [
216
- 6, 7, 7, 11, 9, 14, 6, 12, 8, 8,
217
- 3, 1, 3, 9, 8, 12, 14, 7, 11, 10,
218
- 10, 9, 2, 4, 5, 8, 13, 12, 14, nil,
219
- nil, nil, 9, 14, nil, nil, 7, 11, nil, nil,
220
- nil, nil, nil, 6 ]
216
+ 6, 7, 7, 11, 14, 9, 6, 3, 12, 3,
217
+ 10, 10, 1, 13, 9, 14, 12, 7, 11, 2,
218
+ 4, 5, 9, 8, 8, nil, nil, 14, 12, 8,
219
+ nil, nil, 14, 9, nil, nil, 7, 11, nil, nil,
220
+ 8, nil, nil, 6 ]
221
221
 
222
222
  racc_goto_pointer = [
223
- nil, 11, 22, 10, 19, 19, -4, -3, 4, -7,
224
- 15, -2, -27, -30, -5, nil ]
223
+ nil, 12, 19, 7, 16, 16, -4, -3, 19, -6,
224
+ 6, -2, -26, -43, -6, nil ]
225
225
 
226
226
  racc_goto_default = [
227
227
  nil, nil, nil, nil, nil, nil, 46, 33, nil, 13,
@@ -151,7 +151,7 @@ require 'strscan'
151
151
  end
152
152
 
153
153
  def on_error(tid, val, vstack)
154
- BibTeX.log.error("Failed to parse BibTeX Name on value %s (%s) %s" % [val.inspect, token_to_str(tid) || '?', vstack.inspect])
154
+ BibTeX.log.debug("Failed to parse BibTeX Name on value %s (%s) %s" % [val.inspect, token_to_str(tid) || '?', vstack.inspect])
155
155
  end
156
156
 
157
157
  def scan(input)
@@ -20,7 +20,7 @@ module BibTeX
20
20
  module Version
21
21
  MAJOR = 4
22
22
  MINOR = 4
23
- PATCH = 3
23
+ PATCH = 4
24
24
  BUILD = nil
25
25
 
26
26
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').freeze
@@ -19,7 +19,11 @@ module BibTeX
19
19
  assert_equal(@b[0].prefix, "Van den")
20
20
  end
21
21
 
22
+ it "should accept empty strings" do
23
+ assert_equal '', Names.parse("").to_s
24
+ end
25
+
22
26
  end
23
27
 
24
28
  end
25
- end
29
+ end
@@ -2,21 +2,21 @@ require 'helper.rb'
2
2
 
3
3
  module BibTeX
4
4
  class ParserTest < Minitest::Spec
5
-
5
+
6
6
  describe 'given a set of valid @entries' do
7
7
  before do
8
8
  @bib = Parser.new(:debug => false).parse(File.read(Test.fixtures(:entry)))
9
9
  end
10
-
10
+
11
11
  it 'returns a Bibliography instance' do
12
12
  assert @bib
13
13
  refute @bib.empty?
14
14
  end
15
-
15
+
16
16
  it 'parses all entries' do
17
17
  assert_equal 4, @bib.length
18
18
  end
19
-
19
+
20
20
  it 'parses the key values' do
21
21
  assert_equal %w{ key:0 key:1 foo staudinger }, @bib.map(&:key)
22
22
  end
@@ -24,22 +24,22 @@ module BibTeX
24
24
  it 'should parse the entry types' do
25
25
  assert_equal [:book, :article, :article, :commentary], @bib.map(&:type)
26
26
  end
27
-
27
+
28
28
  it 'should parse all values correctly' do
29
29
  assert_equal 'Poe, Edgar A.', @bib[:'key:0'].author.to_s
30
30
  assert_equal 'Hawthorne, Nathaniel', @bib[:'key:1'].author.to_s
31
-
31
+
32
32
  assert_equal '2003', @bib[:'key:0'].year
33
33
  assert_equal '2001', @bib[:'key:1'].year
34
34
 
35
35
  assert_equal 'American Library', @bib[:'key:0'].publisher
36
36
  assert_equal 'American Library', @bib[:'key:1'].publisher
37
-
37
+
38
38
  assert_equal %q[Selected \emph{Poetry} and `Tales'], @bib[:'key:0'].title
39
39
  assert_equal 'Tales and Sketches', @bib[:'key:1'].title
40
- end
40
+ end
41
41
  end
42
-
42
+
43
43
  describe 'key parsing' do
44
44
  it 'handles whitespace in keys' do
45
45
  input = "@Misc{George Martin06,title = {FEAST FOR CROWS}}"
@@ -63,30 +63,30 @@ module BibTeX
63
63
  end
64
64
 
65
65
  it 'fails when there is no cite-key' do
66
- input = "@misc{title = {Crime and Punishment}}"
66
+ input = "@misc{title = {Crime and Punishment}}"
67
67
  assert_raises ParseError do
68
68
  Parser.new(:debug => false, :strict => false).parse(input)
69
69
  end
70
70
  end
71
-
71
+
72
72
  it 'tolerates missing key with :allow_missing_keys set' do
73
- input = "@misc{title = {Crime and Punishment}}"
73
+ input = "@misc{title = {Crime and Punishment}}"
74
74
  assert_equal :misc, Parser.new({
75
75
  :debug => false, :strict => false, :allow_missing_keys => true
76
76
  }).parse(input)[0].type
77
77
  end
78
78
  end
79
-
79
+
80
80
  describe 'backslashes and escape sequences' do
81
-
81
+
82
82
  it 'leaves backslashes intact' do
83
83
  Parser.new.parse(%q(@misc{key, title = "a backslash: \"}))[0].title.must_be :==, 'a backslash: \\'
84
84
  end
85
-
85
+
86
86
  it 'parses LaTeX escaped quotes {"}' do
87
87
  Parser.new.parse(%q(@misc{key, title = "{"}"}))[0].title.must_be :==, '{"}'
88
88
  end
89
-
89
+
90
90
  it 'parses complex LaTeX markup' do
91
91
  b = Parser.new.parse(<<-END)[0]
92
92
  @book{proust_1996,
@@ -103,14 +103,14 @@ module BibTeX
103
103
  b.booktitle.must_be :==, "Perception et Intermodalit\\'{e}: Approches Actuelles De La Question De Molyneux"
104
104
  b.editor.to_s.must_be :==, 'Proust, Jo\"{e}lle'
105
105
  end
106
-
106
+
107
107
  end
108
-
108
+
109
109
  describe 'given a set of explicit and implicit comments' do
110
110
  before do
111
111
  @bib = Parser.new(:debug => false, :include => [:meta_content]).parse(File.read(Test.fixtures(:comment)))
112
112
  end
113
-
113
+
114
114
  it 'should parses all @comments' do
115
115
  assert_equal 2, @bib.comments.length
116
116
  end
@@ -118,35 +118,35 @@ module BibTeX
118
118
  it 'should parses all meta content' do
119
119
  assert_equal 3, @bib.meta_contents.length
120
120
  end
121
-
121
+
122
122
  it 'should parse @comment content as string' do
123
123
  assert_equal ' A comment can contain pretty much anything ', @bib.comments[0].content
124
124
  assert_equal %Q[\n@string{ foo = "bar" }\n\n@string{ bar = "foo" }\n], @bib.comments[1].content
125
- end
125
+ end
126
126
  end
127
-
127
+
128
128
  describe 'given a set of @preambles' do
129
129
  before do
130
130
  @bib = Parser.new(:debug => false).parse(File.read(Test.fixtures(:preamble)))
131
131
  end
132
-
132
+
133
133
  it 'should parse all @preambles' do
134
134
  assert_equal 3, @bib.preambles.length
135
135
  end
136
-
136
+
137
137
  it 'should parse all contents' do
138
138
  assert_equal 'This bibliography was created \\today', @bib.preambles[0].value.to_s
139
139
  assert_equal 'Bib\\TeX', @bib.preambles[1].value.to_s
140
140
  assert_equal '"Maintained by " # maintainer', @bib.preambles[2].value.to_s
141
141
  end
142
142
  end
143
-
143
+
144
144
  describe 'given an entry containing a multi-line literals' do
145
145
  before do
146
146
  @braces = %Q[@TechReport{key,\n author = {Donald,\n Duck}\n}]
147
147
  @string = %Q[@TechReport{key,\n author = "Donald,\n Duck"\n}]
148
148
  end
149
-
149
+
150
150
  it 'should parse string literals' do
151
151
  refute_nil Parser.new.parse(@string)[:key]
152
152
  end
@@ -156,7 +156,7 @@ module BibTeX
156
156
  end
157
157
 
158
158
  end
159
-
159
+
160
160
  describe 'year values' do
161
161
  it 'parses non-numeric year literals' do
162
162
  assert_equal 'to appear',
@@ -174,11 +174,11 @@ module BibTeX
174
174
  @level = BibTeX.log.level
175
175
  BibTeX.log.level = Logger::FATAL
176
176
  end
177
-
177
+
178
178
  after do
179
179
  BibTeX.log.level = @level
180
180
  end
181
-
181
+
182
182
  it 'raises a parser error' do
183
183
  lambda {
184
184
  Parser.new.parse <<-END
@@ -190,5 +190,21 @@ module BibTeX
190
190
  }.must_raise(ParseError)
191
191
  end
192
192
  end
193
+
194
+ describe 'given an entry with empty values' do
195
+ it 'does not raise an error' do
196
+ bib = BibTeX.parse <<-END
197
+ @Incollection{test,
198
+ author = {author},
199
+ title = {title},
200
+ editor = {},
201
+ }
202
+ END
203
+
204
+ assert_equal 'author', bib[:test][:author]
205
+ assert_equal 'title', bib[:test][:title]
206
+ assert_equal '', bib[:test][:editor]
207
+ end
208
+ end
193
209
  end
194
210
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibtex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.3
4
+ version: 4.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvester Keil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-30 00:00:00.000000000 Z
11
+ date: 2017-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: latex-decode
@@ -145,22 +145,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  version: '0'
146
146
  requirements: []
147
147
  rubyforge_project:
148
- rubygems_version: 2.6.3
148
+ rubygems_version: 2.6.12
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: A BibTeX parser, converter and API for Ruby.
152
152
  test_files:
153
- - test/bibtex/test_value.rb
153
+ - test/bibtex/entry/test_rdf_converter.rb
154
+ - test/bibtex/test_bibliography.rb
155
+ - test/bibtex/test_elements.rb
156
+ - test/bibtex/test_entry.rb
157
+ - test/bibtex/test_filters.rb
154
158
  - test/bibtex/test_lexer.rb
159
+ - test/bibtex/test_name_parser.rb
155
160
  - test/bibtex/test_names.rb
156
161
  - test/bibtex/test_parser.rb
157
- - test/bibtex/test_bibliography.rb
158
- - test/bibtex/test_filters.rb
159
- - test/bibtex/test_utilities.rb
160
162
  - test/bibtex/test_string.rb
161
- - test/bibtex/test_entry.rb
162
- - test/bibtex/test_name_parser.rb
163
- - test/bibtex/test_elements.rb
164
- - test/bibtex/entry/test_rdf_converter.rb
163
+ - test/bibtex/test_utilities.rb
164
+ - test/bibtex/test_value.rb
165
165
  - test/test_bibtex.rb
166
166
  - test/test_export.rb