bibtex-ruby 4.4.7 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +23 -24
  3. data/History.txt +4 -0
  4. data/Rakefile +23 -25
  5. data/bibtex-ruby.gemspec +1 -1
  6. data/examples/bib2html.rb +5 -6
  7. data/examples/bib2yaml.rb +2 -2
  8. data/features/step_definitions/bibtex_steps.rb +3 -6
  9. data/features/step_definitions/name_steps.rb +1 -2
  10. data/lib/bibtex.rb +11 -13
  11. data/lib/bibtex/bibliography.rb +45 -58
  12. data/lib/bibtex/compatibility.rb +3 -5
  13. data/lib/bibtex/elements.rb +49 -42
  14. data/lib/bibtex/entry.rb +80 -84
  15. data/lib/bibtex/entry/citeproc_converter.rb +47 -52
  16. data/lib/bibtex/entry/rdf_converter.rb +97 -63
  17. data/lib/bibtex/error.rb +10 -11
  18. data/lib/bibtex/extensions.rb +2 -5
  19. data/lib/bibtex/filters.rb +4 -9
  20. data/lib/bibtex/filters/latex.rb +0 -2
  21. data/lib/bibtex/filters/linebreaks.rb +0 -2
  22. data/lib/bibtex/lexer.rb +81 -81
  23. data/lib/bibtex/names.rb +24 -28
  24. data/lib/bibtex/replaceable.rb +15 -17
  25. data/lib/bibtex/utilities.rb +5 -10
  26. data/lib/bibtex/value.rb +28 -34
  27. data/lib/bibtex/version.rb +6 -6
  28. data/test/benchmark.rb +20 -22
  29. data/test/bibtex/entry/test_rdf_converter.rb +3 -5
  30. data/test/bibtex/test_bibliography.rb +22 -35
  31. data/test/bibtex/test_elements.rb +7 -15
  32. data/test/bibtex/test_entry.rb +78 -87
  33. data/test/bibtex/test_filters.rb +8 -7
  34. data/test/bibtex/test_lexer.rb +10 -13
  35. data/test/bibtex/test_name_parser.rb +6 -9
  36. data/test/bibtex/test_names.rb +50 -55
  37. data/test/bibtex/test_parser.rb +30 -34
  38. data/test/bibtex/test_string.rb +8 -9
  39. data/test/bibtex/test_utilities.rb +6 -9
  40. data/test/bibtex/test_value.rb +41 -43
  41. data/test/helper.rb +3 -6
  42. data/test/macruby.rb +12 -13
  43. data/test/profile.rb +16 -16
  44. data/test/test_bibtex.rb +10 -15
  45. data/test/test_export.rb +5 -13
  46. metadata +4 -4
@@ -2,11 +2,10 @@ require 'helper.rb'
2
2
 
3
3
  module BibTeX
4
4
  class StringTest < Minitest::Spec
5
-
6
5
  describe 'when parsing a simple string' do
7
6
  before do
8
7
  @bib = BibTeX.parse('@string{ foo = "bar" }')
9
- end
8
+ end
10
9
  it 'should should not be empty' do
11
10
  assert_equal 1, @bib.length
12
11
  end
@@ -21,14 +20,14 @@ module BibTeX
21
20
  end
22
21
  end
23
22
 
24
- #
23
+ #
25
24
  # def test_replacement
26
25
  # bib = BibTeX::Bibliography.open(Test.fixtures(:string_replacement), :debug => false)
27
26
  # refute_nil(bib)
28
27
  # assert(bib.kind_of?(BibTeX::Bibliography))
29
28
  # refute(bib.empty?)
30
29
  # assert_equal(7,bib.length)
31
- # assert_equal([BibTeX::String,BibTeX::Preamble,BibTeX::Entry], bib.data.map(&:class).uniq)
30
+ # assert_equal([BibTeX::String,BibTeX::Preamble,BibTeX::Entry], bib.data.map(&:class).uniq)
32
31
  # assert_equal(["foo"], bib.strings[:foo])
33
32
  # assert_equal(["bar"], bib.strings[:bar])
34
33
  # assert_equal([:foo, "bar"], bib.strings[:foobar])
@@ -36,7 +35,7 @@ module BibTeX
36
35
  # assert_equal([:bar, "foo", :bar], bib.strings[:barfoobar])
37
36
  # assert_equal('"foo" # foo # foobarfoo # "bar"', bib.preambles[0].content)
38
37
  # assert_equal('"foo" # barfoobar', bib[:'manual:1'].title)
39
- #
38
+ #
40
39
  # bib.replace_strings({ :filter => [:preamble]})
41
40
  # assert_equal(["foo"], bib.strings[:foo])
42
41
  # assert_equal(["bar"], bib.strings[:bar])
@@ -45,19 +44,19 @@ module BibTeX
45
44
  # assert_equal([:bar, "foo", :bar], bib.strings[:barfoobar])
46
45
  # assert_equal('"foo" # "foo" # foobar # foo # "bar"', bib.preambles[0].content)
47
46
  # assert_equal('"foo" # barfoobar', bib[:'manual:1'].title)
48
- #
47
+ #
49
48
  # bib.replace_strings({ :filter => [:string]})
50
49
  # assert_equal(['foo','bar'], bib.strings[:foobar])
51
50
  # assert_equal(['foo', 'bar','foo'], bib.strings[:foobarfoo])
52
51
  # assert_equal(['bar','foo','bar'], bib.strings[:barfoobar])
53
52
  # assert_equal('"foo" # "foo" # foobar # foo # "bar"', bib.preambles[0].content)
54
53
  # assert_equal('"foo" # barfoobar', bib[:'manual:1'].title)
55
- #
54
+ #
56
55
  # bib.replace_strings({ :filter => [:preamble,:entry]})
57
56
  # assert_equal('"foo" # "foo" # "foo" # "bar" # "foo" # "bar"', bib.preambles[0].content)
58
57
  # assert_equal('"foo" # "bar" # "foo" # "bar"', bib[:'manual:1'].title)
59
58
  # end
60
- #
59
+ #
61
60
  # def test_roundtrip
62
61
  # bib = BibTeX::Bibliography.open(Test.fixtures(:string_replacement), :debug => false)
63
62
  # refute_nil(bib)
@@ -80,4 +79,4 @@ module BibTeX
80
79
  # assert_equal('@string{ barfoobar = "barfoobar" }', bib.data[4].to_s)
81
80
  # end
82
81
  end
83
- end
82
+ end
@@ -1,16 +1,14 @@
1
1
  require 'helper.rb'
2
2
 
3
3
  module BibTeX
4
-
5
4
  class TestBibtex < Minitest::Unit::TestCase
6
-
7
5
  def test_empty?
8
6
  assert BibTeX.open(Test.fixtures(:empty)).empty?
9
7
  refute BibTeX.open(Test.fixtures(:bibdesk)).empty?
10
8
  end
11
9
 
12
10
  def test_parse
13
- bib = BibTeX.parse %q[ @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia" } ]
11
+ bib = BibTeX.parse ' @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia" } '
14
12
  assert_equal 1, bib.length
15
13
  assert_equal 'Ligeia', bib[:id].title
16
14
  assert_equal 'Poe, Edgar Allen', bib[:id].author.to_s
@@ -20,15 +18,14 @@ module BibTeX
20
18
  log_level = BibTeX.log.level
21
19
  BibTeX.log.level = Logger::ERROR
22
20
 
23
- refute BibTeX.parse(%q[ @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia" } ]).valid?
24
- assert BibTeX.parse(%q[ @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ]).valid?
25
- assert BibTeX.parse(%q[ @book{ id, editor = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ]).valid?
26
- refute BibTeX.parse(%q[ @book{ id, xxxxxx = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ]).valid?
27
- refute BibTeX.parse(%q[ @book{ id, author = {Poe, Edgar Allen}, title = "Lig"eia", publisher = "Penguin", year = 1996 } ]).valid?
21
+ refute BibTeX.parse(' @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia" } ').valid?
22
+ assert BibTeX.parse(' @book{ id, author = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ').valid?
23
+ assert BibTeX.parse(' @book{ id, editor = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ').valid?
24
+ refute BibTeX.parse(' @book{ id, xxxxxx = {Poe, Edgar Allen}, title = "Ligeia", publisher = "Penguin", year = 1996 } ').valid?
25
+ refute BibTeX.parse(' @book{ id, author = {Poe, Edgar Allen}, title = "Lig"eia", publisher = "Penguin", year = 1996 } ').valid?
28
26
  assert BibTeX.valid?(Test.fixtures(:bibdesk))
29
27
 
30
28
  BibTeX.log.level = log_level
31
29
  end
32
30
  end
33
-
34
31
  end
@@ -14,59 +14,58 @@ end
14
14
 
15
15
  module BibTeX
16
16
  class ValueTest < Minitest::Spec
17
-
18
- describe "::create" do
19
- it "should return a duplicate when called with a Value subclass" do
17
+ describe '::create' do
18
+ it 'should return a duplicate when called with a Value subclass' do
20
19
  val = Value.new('value')
21
- names = Names.new(Name.new(:first => 'first_name'))
20
+ names = Names.new(Name.new(first: 'first_name'))
22
21
 
23
22
  assert_equal val.dup, Value.create(val)
24
23
  assert_equal names.dup, Value.create(names)
25
24
  end
26
25
 
27
- it "should return a new Value object when called with other arguments" do
26
+ it 'should return a new Value object when called with other arguments' do
28
27
  assert_equal Value.new('value'), Value.create('value')
29
28
  end
30
29
  end
31
30
 
32
- describe "when empty" do
33
- it "should be equal to an empty string" do
31
+ describe 'when empty' do
32
+ it 'should be equal to an empty string' do
34
33
  assert Value.new == ''
35
34
  assert Value.new('') == ''
36
35
  end
37
- it "should be empty" do
36
+ it 'should be empty' do
38
37
  assert Value.new.empty?
39
38
  assert Value.new('').empty?
40
39
  end
41
- it "should match an empty pattern" do
40
+ it 'should match an empty pattern' do
42
41
  assert Value.new =~ //
43
42
  assert Value.new('') =~ //
44
43
  end
45
44
  end
46
45
 
47
- describe "#join" do
48
- it "should return empty string when empty" do
46
+ describe '#join' do
47
+ it 'should return empty string when empty' do
49
48
  assert_equal '', Value.new.join.to_s
50
49
  assert_equal '', Value.new('').join.to_s
51
50
  end
52
- it "should return the string if atomic" do
51
+ it 'should return the string if atomic' do
53
52
  assert_equal 'foo', Value.new('foo').join.to_s
54
53
  end
55
- it "should return a string concatenation of all strings when containing only strings" do
54
+ it 'should return a string concatenation of all strings when containing only strings' do
56
55
  assert_equal 'foobar', Value.new('foo', 'bar').join.to_s
57
- assert_equal 'foobar', Value.new(['foo', 'bar']).join.to_s
56
+ assert_equal 'foobar', Value.new(%w[foo bar]).join.to_s
58
57
  end
59
- it "should should be atomic after join when containing only strings" do
58
+ it 'should should be atomic after join when containing only strings' do
60
59
  refute Value.new('foo', 'bar').atomic?
61
60
  assert Value.new('foo', 'bar').join.atomic?
62
61
  end
63
- it "should do nothing when containing only symbols" do
62
+ it 'should do nothing when containing only symbols' do
64
63
  value = Value.new(:foo)
65
64
  assert_equal value, value.join
66
65
  value = Value.new(:foo, :bar)
67
66
  assert_equal value, value.join
68
67
  end
69
- it "should do nothing when containing only symbols and a single string" do
68
+ it 'should do nothing when containing only symbols and a single string' do
70
69
  value = Value.new(:foo, 'bar')
71
70
  assert_equal value, value.join
72
71
  value = Value.new('foo', :bar)
@@ -84,65 +83,65 @@ module BibTeX
84
83
  end
85
84
  end
86
85
 
87
- describe "#to_s" do
88
- it "should return the string if atomic" do
86
+ describe '#to_s' do
87
+ it 'should return the string if atomic' do
89
88
  assert_equal 'foo bar', Value.new('foo bar').to_s
90
89
  end
91
- it "should return the symbol as string when containing only a single symbol" do
90
+ it 'should return the symbol as string when containing only a single symbol' do
92
91
  assert_equal 'foo', Value.new(:foo).to_s
93
92
  end
94
- it "should return all string tokens concatenated by #" do
93
+ it 'should return all string tokens concatenated by #' do
95
94
  assert_equal '"foo" # "bar"', Value.new('foo', 'bar').to_s
96
95
  end
97
- it "should return all symbol tokens concatenated by #" do
96
+ it 'should return all symbol tokens concatenated by #' do
98
97
  assert_equal 'foo # bar', Value.new(:foo, :bar).to_s
99
98
  end
100
- it "should return all symbol and string tokens concatenated by #" do
99
+ it 'should return all symbol and string tokens concatenated by #' do
101
100
  assert_equal 'foo # "bar"', Value.new(:foo, 'bar').to_s
102
101
  assert_equal '"foo" # bar', Value.new('foo', :bar).to_s
103
102
  end
104
103
  end
105
104
 
106
- describe "conversions" do
105
+ describe 'conversions' do
107
106
  before do
108
107
  @values = [Value.new('foo'), Value.new('foo', :bar)]
109
108
  end
110
109
 
111
- describe "#convert" do
112
- it "converts the value when given a filter instance" do
110
+ describe '#convert' do
111
+ it 'converts the value when given a filter instance' do
113
112
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert(Upcase.instance).to_s }
114
113
  end
115
114
 
116
- it "converts the value when given a filter class" do
115
+ it 'converts the value when given a filter class' do
117
116
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert(Upcase).to_s }
118
117
  end
119
118
 
120
- it "converts the value when given the name of a filter" do
119
+ it 'converts the value when given the name of a filter' do
121
120
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert(:upcase).to_s }
122
121
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert('upcase').to_s }
123
122
  assert_equal ['fooa', '"fooa" # bar'], @values.map { |v| v.convert('suffixa').to_s }
124
123
  end
125
124
 
126
- it "applies multiple filters in the order passed" do
125
+ it 'applies multiple filters in the order passed' do
127
126
  @values.map { |v| v.convert(:upcase, :suffixa).to_s }.must_equal ['FOOa', '"FOOa" # bar']
128
127
  @values.map { |v| v.convert(:suffixa, :upcase).to_s }.must_equal ['FOOA', '"FOOA" # bar']
129
128
  end
130
129
 
131
- it "converts the value when using a ghost method" do
130
+ it 'converts the value when using a ghost method' do
132
131
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert_upcase.to_s }
133
132
  end
134
133
 
135
- it "does not alter the value when using a filter name" do
134
+ it 'does not alter the value when using a filter name' do
136
135
  @values.each { |v| v.convert(:upcase) }
137
136
  assert_equal ['foo', '"foo" # bar'], @values.map(&:to_s)
138
137
  end
139
138
 
140
- it "does not alter the value when using a ghost method" do
141
- @values.each { |v| v.convert_upcase }
139
+ it 'does not alter the value when using a ghost method' do
140
+ @values.each(&:convert_upcase)
142
141
  assert_equal ['foo', '"foo" # bar'], @values.map(&:to_s)
143
142
  end
144
143
 
145
- it "raises argument error when a filter cannot be resolved" do
144
+ it 'raises argument error when a filter cannot be resolved' do
146
145
  assert_raises ArgumentError do
147
146
  @values[0].convert(:foo)
148
147
  end
@@ -153,23 +152,23 @@ module BibTeX
153
152
  end
154
153
  end
155
154
 
156
- describe "#convert!" do
157
- it "converts the value when given the name of a filter" do
155
+ describe '#convert!' do
156
+ it 'converts the value when given the name of a filter' do
158
157
  assert_equal ['FOO', '"FOO" # bar'], @values.map { |v| v.convert!(:upcase).to_s }
159
158
  end
160
159
 
161
- it "alters the value when given the name of a filter" do
160
+ it 'alters the value when given the name of a filter' do
162
161
  @values.each { |v| v.convert!(:upcase) }
163
162
  assert_equal ['FOO', '"FOO" # bar'], @values.map(&:to_s)
164
163
  end
165
164
 
166
- it "alters the value when using a ghost method" do
167
- @values.each { |v| v.convert_upcase! }
165
+ it 'alters the value when using a ghost method' do
166
+ @values.each(&:convert_upcase!)
168
167
  assert_equal ['FOO', '"FOO" # bar'], @values.map(&:to_s)
169
168
  end
170
169
  end
171
170
 
172
- describe "value" do
171
+ describe 'value' do
173
172
  it 'returns numbers as strings' do
174
173
  assert Value.new(42).v.is_a?(::String)
175
174
  assert Value.new(-42).v.is_a?(::String)
@@ -177,13 +176,12 @@ module BibTeX
177
176
  end
178
177
  end
179
178
 
180
- describe "#to_s" do
179
+ describe '#to_s' do
181
180
  it 'accepts a :filter option and convert the values accordingly without changing the value' do
182
- assert_equal '"FOO" # bar', @values[1].to_s(:filter => :upcase)
181
+ assert_equal '"FOO" # bar', @values[1].to_s(filter: :upcase)
183
182
  assert_equal '"foo" # bar', @values[1].to_s
184
183
  end
185
184
  end
186
185
  end
187
-
188
186
  end
189
187
  end
data/test/helper.rb CHANGED
@@ -6,13 +6,12 @@ rescue LoadError
6
6
  end
7
7
 
8
8
  begin
9
- case
10
- when RUBY_PLATFORM < 'java'
9
+ if RUBY_PLATFORM < 'java'
11
10
  require 'debug'
12
11
  Debugger.start
13
- when defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
12
+ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
14
13
  require 'rubinius/debugger'
15
- when defined?(RUBY_VERSION) && RUBY_VERSION < '2.0'
14
+ elsif defined?(RUBY_VERSION) && RUBY_VERSION < '2.0'
16
15
  require 'debugger'
17
16
  else
18
17
  require 'byebug'
@@ -32,12 +31,10 @@ require 'bibtex'
32
31
 
33
32
  module BibTeX
34
33
  module Test
35
-
36
34
  class << self
37
35
  def fixtures(name)
38
36
  File.expand_path("../fixtures/#{name}.bib", __FILE__)
39
37
  end
40
38
  end
41
-
42
39
  end
43
40
  end
data/test/macruby.rb CHANGED
@@ -1,20 +1,19 @@
1
-
2
1
  # sudo dtrace -qs test/macruby.d -c "macruby -Ilib -rrubygems test/macruby.rb"
3
2
 
4
3
  require 'bibtex'
5
4
 
6
- input = <<-END
7
- @book{pickaxe,
8
- Address = {Raleigh, North Carolina},
9
- Author = {Thomas, Dave, and Fowler, Chad, and Hunt, Andy},
10
- Date-Added = {2010-08-05 09:54:07 +0200},
11
- Date-Modified = {2010-08-05 10:07:01 +0200},
12
- Keywords = {ruby},
13
- Publisher = {The Pragmatic Bookshelf},
14
- Series = {The Facets of Ruby},
15
- Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
16
- Year = {2009}
17
- }
5
+ input = <<~END
6
+ @book{pickaxe,
7
+ Address = {Raleigh, North Carolina},
8
+ Author = {Thomas, Dave, and Fowler, Chad, and Hunt, Andy},
9
+ Date-Added = {2010-08-05 09:54:07 +0200},
10
+ Date-Modified = {2010-08-05 10:07:01 +0200},
11
+ Keywords = {ruby},
12
+ Publisher = {The Pragmatic Bookshelf},
13
+ Series = {The Facets of Ruby},
14
+ Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
15
+ Year = {2009}
16
+ }
18
17
  END
19
18
 
20
19
  lexer = BibTeX::Lexer.new
data/test/profile.rb CHANGED
@@ -1,28 +1,28 @@
1
- require File.expand_path('../../lib/bibtex.rb', __FILE__)
1
+ require File.expand_path('../lib/bibtex.rb', __dir__)
2
2
 
3
3
  require 'ruby-prof'
4
4
 
5
- data = <<-END
6
- @book{pickaxe,
7
- Address = {Raleigh, North Carolina},
8
- Author = "Thomas, Dave, and Fowler, Chad, and Hunt, Andy",
9
- Date-Added = {2010-08-05 09:54:07 +0200},
10
- Date-Modified = {2010-08-05 10:07:01 +0200},
11
- Keywords = {ruby},
12
- Publisher = {The Pragmatic Bookshelf},
13
- Series = {The Facets of Ruby},
14
- Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
15
- Year = {2009}
16
- }
5
+ data = <<~END
6
+ @book{pickaxe,
7
+ Address = {Raleigh, North Carolina},
8
+ Author = "Thomas, Dave, and Fowler, Chad, and Hunt, Andy",
9
+ Date-Added = {2010-08-05 09:54:07 +0200},
10
+ Date-Modified = {2010-08-05 10:07:01 +0200},
11
+ Keywords = {ruby},
12
+ Publisher = {The Pragmatic Bookshelf},
13
+ Series = {The Facets of Ruby},
14
+ Title = {Programming Ruby 1.9: The Pragmatic Programmer's Guide},
15
+ Year = {2009}
16
+ }
17
17
  END
18
18
 
19
- data = data * 50
19
+ data *= 50
20
20
  # data = File.open(File.expand_path('../fixtures/benchmark.bib', __FILE__)).read
21
21
 
22
22
  result = RubyProf.profile do
23
- BibTeX.parse(data)
23
+ BibTeX.parse(data)
24
24
  # BibTeX::Lexer.new.analyse(data)
25
25
  end
26
26
 
27
27
  printer = RubyProf::DotPrinter.new(result)
28
- printer.print(File.open(File.expand_path('../profile.dot', __FILE__), 'w'), :min_percent => 5)
28
+ printer.print(File.open(File.expand_path('profile.dot', __dir__), 'w'), min_percent: 5)
data/test/test_bibtex.rb CHANGED
@@ -3,31 +3,28 @@ require 'timeout'
3
3
 
4
4
  module BibTeX
5
5
  class TestBibtex < Minitest::Unit::TestCase
6
+ def setup; end
6
7
 
7
- def setup
8
- end
9
-
10
- def teardown
11
- end
8
+ def teardown; end
12
9
 
13
10
  def test_empty
14
- bib = BibTeX::Bibliography.open(Test.fixtures(:empty), :debug => false)
11
+ bib = BibTeX::Bibliography.open(Test.fixtures(:empty), debug: false)
15
12
  refute_nil(bib)
16
13
  assert_equal(BibTeX::Bibliography, bib.class)
17
14
  assert(bib.empty?)
18
15
  end
19
16
 
20
17
  def test_no_bibtex
21
- bib = BibTeX::Bibliography.open(Test.fixtures(:no_bibtex), :debug => false)
18
+ bib = BibTeX::Bibliography.open(Test.fixtures(:no_bibtex), debug: false)
22
19
  refute_nil(bib)
23
20
  assert_equal(BibTeX::Bibliography, bib.class)
24
21
  assert(bib.empty?)
25
22
  end
26
23
 
27
24
  def test_decoret
28
- bib = BibTeX::Bibliography.open(Test.fixtures(:decoret), :debug => false)
25
+ bib = BibTeX::Bibliography.open(Test.fixtures(:decoret), debug: false)
29
26
  assert_equal(15, bib.length)
30
- assert_equal([BibTeX::Entry,BibTeX::Comment,BibTeX::String,BibTeX::Preamble], bib.data.map(&:class).uniq)
27
+ assert_equal([BibTeX::Entry, BibTeX::Comment, BibTeX::String, BibTeX::Preamble], bib.data.map(&:class).uniq)
31
28
  assert_equal('py03', bib.data[0].key)
32
29
  assert_equal(:article, bib[:py03].type)
33
30
  assert_equal("D\\'ecoret, Xavier", bib[:py03][:author].to_s)
@@ -35,7 +32,7 @@ module BibTeX
35
32
  assert_equal('2003', bib[:py03][:year])
36
33
  assert_equal(:article, bib[:key03].type)
37
34
  assert_equal('A {bunch {of} braces {in}} title', bib[:key03][:title])
38
- #TODO missing assertions
35
+ # TODO: missing assertions
39
36
  end
40
37
 
41
38
  # def test_errors
@@ -44,7 +41,7 @@ module BibTeX
44
41
  # end
45
42
 
46
43
  def test_bibdesk
47
- bib = BibTeX::Bibliography.open(Test.fixtures(:bibdesk), :debug => false)
44
+ bib = BibTeX::Bibliography.open(Test.fixtures(:bibdesk), debug: false)
48
45
  assert_equal 3, bib.length
49
46
  assert_equal 'rails', bib[0].key
50
47
  assert_equal '2010-08-05 10:06:32 +0200', bib[:dragon]['date-modified']
@@ -77,7 +74,7 @@ module BibTeX
77
74
 
78
75
  def test_parse
79
76
  bib = BibTeX::Bibliography.new
80
- bib.add(BibTeX::Element.parse(%q( @string{ pragprog = "The Pragmatic Bookshelf" } )))
77
+ bib.add(BibTeX::Element.parse(' @string{ pragprog = "The Pragmatic Bookshelf" } '))
81
78
  bib.add(BibTeX::Element.parse(<<-END))
82
79
  @book{rails,
83
80
  address = {Raleigh, North Carolina},
@@ -95,7 +92,7 @@ module BibTeX
95
92
  assert_equal(2, bib.length)
96
93
  refute_nil(bib[:rails])
97
94
  bib.replace_strings
98
- assert_equal 'The Pragmatic Bookshelf', bib['rails'].publisher
95
+ assert_equal 'The Pragmatic Bookshelf', bib['rails'].publisher
99
96
  end
100
97
 
101
98
  def test_logger_can_be_assigned
@@ -121,7 +118,5 @@ EOF
121
118
  EOF
122
119
  end
123
120
  end
124
-
125
121
  end
126
-
127
122
  end