bibtex-ruby 1.3.2 → 1.3.3
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/Bibliography.bib +7554 -0
- data/Gemfile.lock +6 -4
- data/History.txt +4 -0
- data/Manifest +1 -0
- data/Rakefile +2 -0
- data/bibtex-ruby.gemspec +1 -0
- data/features/names.feature +2 -0
- data/features/support/env.rb +4 -0
- data/lib/bibtex.rb +3 -2
- data/lib/bibtex/elements.rb +1 -0
- data/lib/bibtex/name_parser.rb +17 -16
- data/lib/bibtex/names.rb +1 -1
- data/lib/bibtex/names.y +17 -16
- data/lib/bibtex/value.rb +1 -1
- data/lib/bibtex/version.rb +1 -1
- data/test/bibtex/test_bibliography.rb +3 -0
- data/test/helper.rb +3 -0
- data/test/test_export.rb +8 -1
- metadata +35 -20
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bibtex-ruby (1.3.
|
|
4
|
+
bibtex-ruby (1.3.3)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: http://rubygems.org/
|
|
@@ -11,14 +11,14 @@ GEM
|
|
|
11
11
|
watchr
|
|
12
12
|
builder (3.0.0)
|
|
13
13
|
columnize (0.3.2)
|
|
14
|
-
cucumber (0.10.
|
|
14
|
+
cucumber (0.10.3)
|
|
15
15
|
builder (>= 2.1.2)
|
|
16
16
|
diff-lcs (>= 1.1.2)
|
|
17
|
-
gherkin (>= 2.3.
|
|
17
|
+
gherkin (>= 2.3.8)
|
|
18
18
|
json (>= 1.4.6)
|
|
19
19
|
term-ansicolor (>= 1.0.5)
|
|
20
20
|
diff-lcs (1.1.2)
|
|
21
|
-
gherkin (2.3.
|
|
21
|
+
gherkin (2.3.10)
|
|
22
22
|
json (>= 1.4.6)
|
|
23
23
|
json (1.5.1)
|
|
24
24
|
linecache (0.43)
|
|
@@ -30,6 +30,7 @@ GEM
|
|
|
30
30
|
mynyml-redgreen (0.7.1)
|
|
31
31
|
term-ansicolor (>= 1.0.4)
|
|
32
32
|
racc (1.4.6)
|
|
33
|
+
rake (0.9.0)
|
|
33
34
|
ruby-debug (0.10.4)
|
|
34
35
|
columnize (>= 0.1)
|
|
35
36
|
ruby-debug-base (~> 0.10.4.0)
|
|
@@ -59,5 +60,6 @@ DEPENDENCIES
|
|
|
59
60
|
mini_shoulda (>= 0.3)
|
|
60
61
|
mynyml-redgreen (>= 0.7)
|
|
61
62
|
racc (>= 1.4)
|
|
63
|
+
rake (>= 0.8)
|
|
62
64
|
ruby-debug
|
|
63
65
|
ruby-debug19
|
data/History.txt
CHANGED
data/Manifest
CHANGED
data/Rakefile
CHANGED
data/bibtex-ruby.gemspec
CHANGED
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.required_rubygems_version = '>= 1.3.6'
|
|
19
19
|
s.rubyforge_project = s.name
|
|
20
20
|
|
|
21
|
+
s.add_development_dependency('rake', ['>= 0.8'])
|
|
21
22
|
s.add_development_dependency('racc', ['>= 1.4'])
|
|
22
23
|
s.add_development_dependency('mini_shoulda', ['>= 0.3'])
|
|
23
24
|
s.add_development_dependency('mynyml-redgreen', ['>= 0.7'])
|
data/features/names.feature
CHANGED
|
@@ -64,6 +64,8 @@ Feature: BibTeX Names
|
|
|
64
64
|
| Ludwig von Beethoven | Ludwig | von | Beethoven | |
|
|
65
65
|
| von Beethoven, Ludwig | Ludwig | von | Beethoven | |
|
|
66
66
|
| {von Beethoven}, Ludwig | Ludwig | | {von Beethoven} | |
|
|
67
|
+
| {{von} Beethoven}, Ludwig | Ludwig | | {{von} Beethoven} | |
|
|
68
|
+
| John {}Paul Jones | John {}Paul | | Jones | |
|
|
67
69
|
| Ford, Jr., Henry | Henry | | Ford | Jr. |
|
|
68
70
|
| Brinch Hansen, Per | Per | | Brinch Hansen | |
|
|
69
71
|
| {Barnes and Noble, Inc.} | | | {Barnes and Noble, Inc.} | |
|
data/features/support/env.rb
CHANGED
data/lib/bibtex.rb
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
$:.unshift(File.dirname(__FILE__)) unless
|
|
20
20
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
21
21
|
|
|
22
|
+
require 'rubygems'
|
|
22
23
|
|
|
23
24
|
require 'bibtex/version'
|
|
24
25
|
require 'logger'
|
|
@@ -48,8 +49,8 @@ module BibTeX
|
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
# Load debugger
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
require 'ruby-debug'
|
|
53
|
+
Debugger.start
|
|
53
54
|
|
|
54
55
|
require 'bibtex/extensions'
|
|
55
56
|
require 'bibtex/value'
|
data/lib/bibtex/elements.rb
CHANGED
data/lib/bibtex/name_parser.rb
CHANGED
|
@@ -71,7 +71,8 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 80)
|
|
|
71
71
|
@word[1] << @src.matched
|
|
72
72
|
|
|
73
73
|
when @src.scan(/\{/o)
|
|
74
|
-
|
|
74
|
+
@word[1] << @src.matched
|
|
75
|
+
scan_literal
|
|
75
76
|
|
|
76
77
|
when @src.scan(/\}/o)
|
|
77
78
|
error_unbalanced
|
|
@@ -100,21 +101,21 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 80)
|
|
|
100
101
|
@word[0] = :UWORD if @word[0] == :PWORD
|
|
101
102
|
end
|
|
102
103
|
|
|
103
|
-
def scan_literal
|
|
104
|
-
@brace_level
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
104
|
+
def scan_literal
|
|
105
|
+
@brace_level = 1
|
|
106
|
+
|
|
107
|
+
while @brace_level > 0
|
|
108
|
+
@word[1] << @src.scan_until(/[\{\}]/o).to_s
|
|
109
|
+
|
|
110
|
+
case @src.matched
|
|
111
|
+
when '{'
|
|
112
|
+
@brace_level += 1
|
|
113
|
+
when '}'
|
|
114
|
+
@brace_level -= 1
|
|
115
|
+
else
|
|
116
|
+
@brace_level = 0
|
|
117
|
+
error_unbalanced
|
|
118
|
+
end
|
|
118
119
|
end
|
|
119
120
|
end
|
|
120
121
|
|
data/lib/bibtex/names.rb
CHANGED
|
@@ -143,7 +143,7 @@ module BibTeX
|
|
|
143
143
|
[:strip!, :upcase!, :downcase!, :sub!, :gsub!, :chop!, :chomp!, :rstrip!].each do |method_id|
|
|
144
144
|
define_method(method_id) do |*arguments, &block|
|
|
145
145
|
each do |part|
|
|
146
|
-
part.send(method_id, *arguments, &block)
|
|
146
|
+
part.send(method_id, *arguments, &block) unless part.nil?
|
|
147
147
|
end
|
|
148
148
|
self
|
|
149
149
|
end
|
data/lib/bibtex/names.y
CHANGED
|
@@ -136,7 +136,8 @@ require 'strscan'
|
|
|
136
136
|
@word[1] << @src.matched
|
|
137
137
|
|
|
138
138
|
when @src.scan(/\{/o)
|
|
139
|
-
|
|
139
|
+
@word[1] << @src.matched
|
|
140
|
+
scan_literal
|
|
140
141
|
|
|
141
142
|
when @src.scan(/\}/o)
|
|
142
143
|
error_unbalanced
|
|
@@ -165,21 +166,21 @@ require 'strscan'
|
|
|
165
166
|
@word[0] = :UWORD if @word[0] == :PWORD
|
|
166
167
|
end
|
|
167
168
|
|
|
168
|
-
def scan_literal
|
|
169
|
-
@brace_level
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
169
|
+
def scan_literal
|
|
170
|
+
@brace_level = 1
|
|
171
|
+
|
|
172
|
+
while @brace_level > 0
|
|
173
|
+
@word[1] << @src.scan_until(/[\{\}]/o).to_s
|
|
174
|
+
|
|
175
|
+
case @src.matched
|
|
176
|
+
when '{'
|
|
177
|
+
@brace_level += 1
|
|
178
|
+
when '}'
|
|
179
|
+
@brace_level -= 1
|
|
180
|
+
else
|
|
181
|
+
@brace_level = 0
|
|
182
|
+
error_unbalanced
|
|
183
|
+
end
|
|
183
184
|
end
|
|
184
185
|
end
|
|
185
186
|
|
data/lib/bibtex/value.rb
CHANGED
|
@@ -88,7 +88,7 @@ module BibTeX
|
|
|
88
88
|
[:strip!, :upcase!, :downcase!, :sub!, :gsub!, :chop!, :chomp!, :rstrip!].each do |method_id|
|
|
89
89
|
define_method(method_id) do |*arguments, &block|
|
|
90
90
|
@tokens.each do |part|
|
|
91
|
-
part.send(method_id, *arguments, &block)
|
|
91
|
+
part.send(method_id, *arguments, &block) unless part.nil?
|
|
92
92
|
end
|
|
93
93
|
self
|
|
94
94
|
end
|
data/lib/bibtex/version.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/test_export.rb
CHANGED
|
@@ -5,7 +5,13 @@ require 'json'
|
|
|
5
5
|
|
|
6
6
|
module BibTeX
|
|
7
7
|
class TestString < MiniTest::Unit::TestCase
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
# def test_yaml_roundtrip
|
|
10
|
+
# b1 = BibTeX.open(Test.fixtures(:bibdesk))
|
|
11
|
+
# b2 = Bibliography.new(YAML.load(b1.to_yaml))
|
|
12
|
+
# assert_equal b1, b2
|
|
13
|
+
# end
|
|
14
|
+
|
|
9
15
|
def test_yaml
|
|
10
16
|
bib = BibTeX::Bibliography.open(Test.fixtures(:bibdesk), :debug => false)
|
|
11
17
|
yaml = YAML.load(bib.to_yaml)
|
|
@@ -23,5 +29,6 @@ module BibTeX
|
|
|
23
29
|
assert_equal(%w[ dragon pickaxe rails], json.map { |y| y['key'] }.sort)
|
|
24
30
|
assert_equal('{The Facets of Ruby}', json[0]['series'])
|
|
25
31
|
end
|
|
32
|
+
|
|
26
33
|
end
|
|
27
34
|
end
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: bibtex-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 1.3.
|
|
5
|
+
version: 1.3.3
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Sylvester Keil
|
|
@@ -10,75 +10,86 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2011-
|
|
13
|
+
date: 2011-06-06 00:00:00 +02:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
|
-
name:
|
|
18
|
-
prerelease: false
|
|
17
|
+
name: rake
|
|
19
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
19
|
none: false
|
|
21
20
|
requirements:
|
|
22
21
|
- - ">="
|
|
23
22
|
- !ruby/object:Gem::Version
|
|
24
|
-
version: "
|
|
23
|
+
version: "0.8"
|
|
25
24
|
type: :development
|
|
25
|
+
prerelease: false
|
|
26
26
|
version_requirements: *id001
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
29
|
-
prerelease: false
|
|
28
|
+
name: racc
|
|
30
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
31
30
|
none: false
|
|
32
31
|
requirements:
|
|
33
32
|
- - ">="
|
|
34
33
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: "
|
|
34
|
+
version: "1.4"
|
|
36
35
|
type: :development
|
|
36
|
+
prerelease: false
|
|
37
37
|
version_requirements: *id002
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
|
-
name:
|
|
40
|
-
prerelease: false
|
|
39
|
+
name: mini_shoulda
|
|
41
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
42
41
|
none: false
|
|
43
42
|
requirements:
|
|
44
43
|
- - ">="
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: "0.
|
|
45
|
+
version: "0.3"
|
|
47
46
|
type: :development
|
|
47
|
+
prerelease: false
|
|
48
48
|
version_requirements: *id003
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
|
-
name:
|
|
51
|
-
prerelease: false
|
|
50
|
+
name: mynyml-redgreen
|
|
52
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
53
52
|
none: false
|
|
54
53
|
requirements:
|
|
55
54
|
- - ">="
|
|
56
55
|
- !ruby/object:Gem::Version
|
|
57
|
-
version: "0.
|
|
56
|
+
version: "0.7"
|
|
58
57
|
type: :development
|
|
58
|
+
prerelease: false
|
|
59
59
|
version_requirements: *id004
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
|
-
name:
|
|
62
|
-
prerelease: false
|
|
61
|
+
name: autowatchr
|
|
63
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
|
64
63
|
none: false
|
|
65
64
|
requirements:
|
|
66
65
|
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: "0.
|
|
67
|
+
version: "0.1"
|
|
69
68
|
type: :development
|
|
69
|
+
prerelease: false
|
|
70
70
|
version_requirements: *id005
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
|
-
name:
|
|
73
|
-
prerelease: false
|
|
72
|
+
name: cucumber
|
|
74
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
|
75
74
|
none: false
|
|
76
75
|
requirements:
|
|
77
76
|
- - ">="
|
|
78
77
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: "
|
|
78
|
+
version: "0.10"
|
|
80
79
|
type: :development
|
|
80
|
+
prerelease: false
|
|
81
81
|
version_requirements: *id006
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: json
|
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
|
85
|
+
none: false
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: "1.5"
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: *id007
|
|
82
93
|
description: A (fairly complete) BibTeX library and parser written in Ruby. Includes a name parser and supports regular BibTeX entries, @comments, string replacement via @string. Allows for easy export/conversion to formats such as YAML, JSON, and XML.
|
|
83
94
|
email: http://sylvester.keil.or.at
|
|
84
95
|
executables: []
|
|
@@ -88,6 +99,7 @@ extensions: []
|
|
|
88
99
|
extra_rdoc_files:
|
|
89
100
|
- README.md
|
|
90
101
|
files:
|
|
102
|
+
- Bibliography.bib
|
|
91
103
|
- Gemfile
|
|
92
104
|
- Gemfile.lock
|
|
93
105
|
- History.txt
|
|
@@ -173,6 +185,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
173
185
|
requirements:
|
|
174
186
|
- - ">="
|
|
175
187
|
- !ruby/object:Gem::Version
|
|
188
|
+
hash: 3560654511728718454
|
|
189
|
+
segments:
|
|
190
|
+
- 0
|
|
176
191
|
version: "0"
|
|
177
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
193
|
none: false
|