bibtex-ruby 2.0.12 → 2.1.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.

data/lib/bibtex/entry.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #--
2
2
  # BibTeX-Ruby
3
- # Copyright (C) 2010-2011 Sylvester Keil <sylvester.keil.or.at>
3
+ # Copyright (C) 2010-2012 Sylvester Keil <sylvester.keil.or.at>
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -161,7 +161,28 @@ module BibTeX
161
161
 
162
162
  add(other.fields)
163
163
  end
164
-
164
+
165
+
166
+ # Generate Accessors for required fields (#52)
167
+
168
+ REQUIRED_FIELDS.values.flatten.uniq.each do |name|
169
+
170
+ define_method(name) do
171
+ case
172
+ when fields.has_key?(name)
173
+ fields[name]
174
+ when has_parent? && parent.provides?(name)
175
+ parent.provide(name)
176
+ else
177
+ nil
178
+ end
179
+ end
180
+
181
+ define_method("#{name}=") do |value|
182
+ add name, value
183
+ end
184
+ end
185
+
165
186
  # call-seq:
166
187
  # entry.each { |key, value| block } -> entry
167
188
  # entry.each_pair { |key, value| block } -> entry
@@ -379,15 +400,15 @@ module BibTeX
379
400
  end
380
401
 
381
402
 
403
+ # call-seq:
404
+ # add(:author, "Edgar A. Poe")
405
+ # add(:author, "Edgar A. Poe", :title, "The Raven")
406
+ # add([:author, "Edgar A. Poe", :title, "The Raven"])
407
+ # add(:author => "Edgar A. Poe", :title => "The Raven")
408
+ # add(:author => Names.new(Name.new(:first => 'Edgar A.', :last => 'Poe')))
409
+ #
382
410
  # Adds a new field (name-value pair) or multiple fields to the entry.
383
411
  # Returns the entry for chainability.
384
- #
385
- # call-seq:
386
- # add(:author, "Edgar A. Poe")
387
- # add(:author, "Edgar A. Poe", :title, "The Raven")
388
- # add([:author, "Edgar A. Poe", :title, "The Raven"])
389
- # add(:author => "Edgar A. Poe", :title => "The Raven")
390
- # add(:author => Names.new(Name.new(:first => 'Edgar A.', :last => 'Poe')))
391
412
  def add(*arguments)
392
413
  Hash[*arguments.flatten].each_pair do |name, value|
393
414
  fields[name.to_sym] = Value.create(value)
@@ -440,9 +461,9 @@ module BibTeX
440
461
  end
441
462
 
442
463
  if bibliography.options.has_key?(:filter)
443
- [*bibliography.options[:filter]].each do |filter|
444
- convert!(filter)
445
- end
464
+ [*bibliography.options[:filter]].each do |filter|
465
+ convert!(filter)
466
+ end
446
467
  end
447
468
 
448
469
  self
@@ -13,19 +13,18 @@ module BibTeX
13
13
 
14
14
  module_eval(<<'...end names.y/module_eval...', 'names.y', 94)
15
15
 
16
- # Patterns Cache (#37: MacRuby does not cache regular expressions)
17
16
  @patterns = {
18
17
  :and => /,?\s+and\s+/io,
19
18
  :space => /[\t\r\n\s]+/o,
20
19
  :comma => /,/o,
21
20
  :lower => /[[:lower:]][^\t\r\n\s\{\}\d\\,]*/o,
22
- :upper => /[[:upper:]][^\t\r\n\s\{\}\d\\,]*/o,
21
+ :upper => /[[:upper:]][^\t\r\n\s\{\}\d\\,]*/uo,
23
22
  :symbols => /(\d|\\.)+/o,
24
23
  :lbrace => /\{/o,
25
24
  :rbrace => /\}/o,
26
25
  :period => /./o,
27
26
  :braces => /[\{\}]/o
28
- }.freeze
27
+ }
29
28
 
30
29
  class << self
31
30
  attr_reader :patterns
data/lib/bibtex/names.rb CHANGED
@@ -279,7 +279,7 @@ module BibTeX
279
279
  hash['family'] = family unless family.nil?
280
280
  hash['given'] = given unless given.nil?
281
281
  hash['suffix'] = suffix unless suffix.nil?
282
- hash[options[:particle] || 'dropping-particle'] = prefix unless prefix.nil?
282
+ hash[options[:particle] || 'non-dropping-particle'] = prefix unless prefix.nil?
283
283
  hash
284
284
  end
285
285
 
data/lib/bibtex/names.y CHANGED
@@ -92,19 +92,18 @@ require 'strscan'
92
92
 
93
93
  ---- inner
94
94
 
95
- # Patterns Cache (#37: MacRuby does not cache regular expressions)
96
95
  @patterns = {
97
96
  :and => /,?\s+and\s+/io,
98
97
  :space => /[\t\r\n\s]+/o,
99
98
  :comma => /,/o,
100
99
  :lower => /[[:lower:]][^\t\r\n\s\{\}\d\\,]*/o,
101
- :upper => /[[:upper:]][^\t\r\n\s\{\}\d\\,]*/o,
100
+ :upper => /[[:upper:]][^\t\r\n\s\{\}\d\\,]*/uo,
102
101
  :symbols => /(\d|\\.)+/o,
103
102
  :lbrace => /\{/o,
104
103
  :rbrace => /\}/o,
105
104
  :period => /./o,
106
105
  :braces => /[\{\}]/o
107
- }.freeze
106
+ }
108
107
 
109
108
  class << self
110
109
  attr_reader :patterns
data/lib/bibtex/value.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  #--
4
4
  # BibTeX-Ruby
5
- # Copyright (C) 2010-2011 Sylvester Keil <sylvester.keil.or.at>
5
+ # Copyright (C) 2010-2012 Sylvester Keil <sylvester.keil.or.at>
6
6
  #
7
7
  # This program is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -1,6 +1,6 @@
1
1
  #--
2
2
  # BibTeX-Ruby
3
- # Copyright (C) 2010-2011 Sylvester Keil <sylvester.keil.or.at>
3
+ # Copyright (C) 2010-2012 Sylvester Keil <sylvester.keil.or.at>
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -17,7 +17,12 @@
17
17
  #++
18
18
 
19
19
  module BibTeX
20
- module Version
21
- STRING = '2.0.12'.freeze
20
+ module Version
21
+ MAJOR = 2
22
+ MINOR = 1
23
+ PATCH = 0
24
+ BUILD = nil
25
+
26
+ STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').freeze
22
27
  end
23
28
  end
@@ -2,29 +2,29 @@ require 'helper'
2
2
 
3
3
  module BibTeX
4
4
 
5
- class ElementTest < MiniTest::Spec
6
-
7
- describe '.parse' do
8
-
9
- it 'accepts a BibTeX string' do
10
- Element.parse('@misc{x,},@misc{y,}').length.must_be :==, 2
11
- end
12
-
13
- it 'accepts an Element' do
14
- Element.parse(Comment.new('blah')).length.must_be :==, 1
15
- end
16
-
17
- it 'accepts a Hash and returns an Entry' do
18
- Element.parse({ :type => :book })[0].type.must_be :==, :book
19
- end
20
-
21
- it 'accepts an array of hashes' do
22
- Element.parse([{ :type => :book }, { :type => :misc }])[1].type.must_be :==, :misc
23
- end
24
-
25
- end
26
-
27
- end
5
+ class ElementTest < MiniTest::Spec
6
+
7
+ describe '.parse' do
8
+
9
+ it 'accepts a BibTeX string' do
10
+ Element.parse('@misc{x,},@misc{y,}').length.must_be :==, 2
11
+ end
12
+
13
+ it 'accepts an Element' do
14
+ Element.parse(Comment.new('blah')).length.must_be :==, 1
15
+ end
16
+
17
+ it 'accepts a Hash and returns an Entry' do
18
+ Element.parse({ :type => :book })[0].type.must_be :==, :book
19
+ end
20
+
21
+ it 'accepts an array of hashes' do
22
+ Element.parse([{ :type => :book }, { :type => :misc }])[1].type.must_be :==, :misc
23
+ end
24
+
25
+ end
26
+
27
+ end
28
28
 
29
29
  class PreambleTest < MiniTest::Spec
30
30
 
@@ -310,8 +310,8 @@ module BibTeX
310
310
  end
311
311
  end
312
312
 
313
- it 'should use dropping-particle by default' do
314
- assert_equal 'van', @entry.to_citeproc['author'][0]['dropping-particle']
313
+ it 'should use non-dropping-particle by default' do
314
+ assert_equal 'van', @entry.to_citeproc['author'][0]['non-dropping-particle']
315
315
  end
316
316
 
317
317
  it 'should accept option to use non-dropping-particle' do
data/test/helper.rb CHANGED
@@ -1,6 +1,17 @@
1
+ begin
2
+ if RUBY_VERSION > '1.8'
3
+ require 'debugger'
4
+ require 'simplecov'
5
+ else
6
+ require 'ruby-debug'
7
+ Debugger.start
8
+ end
9
+ rescue LoadError
10
+ # ignore
11
+ end
1
12
 
2
13
  require 'minitest/autorun'
3
- require 'redgreen'
14
+ require 'minitest/colorize'
4
15
  require 'tempfile'
5
16
 
6
17
  require 'bibtex'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibtex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.12
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-28 00:00:00.000000000 Z
12
+ date: 2012-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: latex-decode
16
- requirement: &70280979721000 !ruby/object:Gem::Requirement
16
+ requirement: &70168050368080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.0.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70280979721000
24
+ version_requirements: *70168050368080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: multi_json
27
- requirement: &70280979720280 !ruby/object:Gem::Requirement
27
+ requirement: &70168050367300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,63 +32,39 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70280979720280
36
- - !ruby/object:Gem::Dependency
37
- name: rake
38
- requirement: &70280979735760 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: '0.9'
44
- type: :development
45
- prerelease: false
46
- version_requirements: *70280979735760
47
- - !ruby/object:Gem::Dependency
48
- name: racc
49
- requirement: &70280979735280 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '1.4'
55
- type: :development
56
- prerelease: false
57
- version_requirements: *70280979735280
58
- - !ruby/object:Gem::Dependency
59
- name: rdoc
60
- requirement: &70280979734680 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ~>
64
- - !ruby/object:Gem::Version
65
- version: '3.9'
66
- type: :development
67
- prerelease: false
68
- version_requirements: *70280979734680
69
- description: ! "\t\tBibTeX-Ruby is the Rubyist's swiss-army-knife for all things BibTeX.
70
- It\n includes a parser for all common BibTeX objects (@string, @preamble,\n @comment
71
- and regular entries) and a sophisticated name parser that\n tokenizes correctly
72
- formatted names; BibTeX-Ruby recognizes BibTeX string\n replacements, joins values
73
- containing multiple strings or variables,\n supports cross-references, and decodes
74
- common LaTeX formatting\n instructions to unicode; if you are in a hurry, it
75
- also allows for easy\n export/conversion to formats such as YAML, JSON, CSL,
76
- and XML (BibTeXML).\n"
35
+ version_requirements: *70168050367300
36
+ description: ! 'BibTeX-Ruby is the Rubyist''s swiss-army-knife for all things BibTeX.
37
+ It
38
+
39
+ includes a parser for all common BibTeX objects (@string, @preamble,
40
+
41
+ @comment and regular entries) and a sophisticated name parser that
42
+
43
+ tokenizes correctly formatted names; BibTeX-Ruby recognizes BibTeX string
44
+
45
+ replacements, joins values containing multiple strings or variables,
46
+
47
+ supports cross-references, and decodes common LaTeX formatting
48
+
49
+ instructions to unicode; if you are in a hurry, it also allows for easy
50
+
51
+ export/conversion to formats such as YAML, JSON, CSL, and XML (BibTeXML).
52
+
53
+ '
77
54
  email:
78
- - http://sylvester.keil.or.at
55
+ - sylvester@keil.or.at
79
56
  executables: []
80
57
  extensions: []
81
- extra_rdoc_files:
82
- - README.md
58
+ extra_rdoc_files: []
83
59
  files:
84
60
  - Gemfile
85
61
  - Gemfile.lock
62
+ - Guardfile
86
63
  - History.txt
87
64
  - LICENSE
88
65
  - Manifest
89
66
  - README.md
90
67
  - Rakefile
91
- - auto.watchr
92
68
  - bibtex-ruby.gemspec
93
69
  - examples/bib2html.rb
94
70
  - examples/bib2yaml.rb
@@ -164,14 +140,7 @@ homepage: http://inukshuk.github.com/bibtex-ruby
164
140
  licenses:
165
141
  - GPL-3
166
142
  post_install_message:
167
- rdoc_options:
168
- - --line-numbers
169
- - --inline-source
170
- - --title
171
- - ! '"BibTeX-Ruby Documentation"'
172
- - --main
173
- - README.md
174
- - --webcvs=http://github.com/inukshuk/bibtex-ruby/tree/master/
143
+ rdoc_options: []
175
144
  require_paths:
176
145
  - lib
177
146
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -180,12 +149,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
149
  - - ! '>='
181
150
  - !ruby/object:Gem::Version
182
151
  version: '0'
152
+ segments:
153
+ - 0
154
+ hash: 769369451757676187
183
155
  required_rubygems_version: !ruby/object:Gem::Requirement
184
156
  none: false
185
157
  requirements:
186
158
  - - ! '>='
187
159
  - !ruby/object:Gem::Version
188
160
  version: '0'
161
+ segments:
162
+ - 0
163
+ hash: 769369451757676187
189
164
  requirements: []
190
165
  rubyforge_project:
191
166
  rubygems_version: 1.8.10
@@ -206,4 +181,4 @@ test_files:
206
181
  - test/bibtex/test_value.rb
207
182
  - test/test_bibtex.rb
208
183
  - test/test_export.rb
209
- has_rdoc:
184
+ has_rdoc: yard
data/auto.watchr DELETED
@@ -1,6 +0,0 @@
1
- require 'autowatchr'
2
-
3
- Autowatchr.new(self) do |config|
4
- config.lib_dir = 'lib'
5
- config.test_dir = 'test'
6
- end