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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bibtex-ruby (1.3.0)
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.2)
14
+ cucumber (0.10.3)
15
15
  builder (>= 2.1.2)
16
16
  diff-lcs (>= 1.1.2)
17
- gherkin (>= 2.3.5)
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.5)
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
@@ -1,3 +1,7 @@
1
+ === 1.3.3
2
+
3
+ * Fixed name parsing of nested braced expressions
4
+
1
5
  === 1.3.2
2
6
 
3
7
  * Fixed numeric keys issue
data/Manifest CHANGED
@@ -1,3 +1,4 @@
1
+ Bibliography.bib
1
2
  Gemfile
2
3
  Gemfile.lock
3
4
  History.txt
data/Rakefile CHANGED
@@ -2,6 +2,8 @@
2
2
  $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
3
3
 
4
4
  require 'rubygems'
5
+ require 'bundler/setup'
6
+
5
7
  require 'rake'
6
8
  require 'rake/clean'
7
9
  require 'rake/testtask'
@@ -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'])
@@ -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.} | |
@@ -1,4 +1,8 @@
1
1
  $LOAD_PATH << File.expand_path('../../../lib', __FILE__)
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
2
6
  require 'bibtex'
3
7
  require 'minitest/unit'
4
8
 
@@ -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
- # require 'ruby-debug'
52
- # Debugger.start
52
+ require 'ruby-debug'
53
+ Debugger.start
53
54
 
54
55
  require 'bibtex/extensions'
55
56
  require 'bibtex/value'
@@ -139,6 +139,7 @@ module BibTeX
139
139
  end
140
140
 
141
141
  def <=>(other)
142
+ return nil unless other.respond_to? :type and other.respond_to? :to_s
142
143
  [type, to_s] <=> [other.type, other.to_s]
143
144
  end
144
145
 
@@ -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
- scan_literal(@src.matched)
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(content = '')
104
- @brace_level += 1
105
- content << @src.scan_until(/[^\\][\{\}]/o).to_s # TODO accept empty braces {}
106
- case @src.matched
107
- when /\{/
108
- scan_braced_expression(content)
109
- when /\}/
110
- @brace_level -= 1
111
- if @brace_level >= 0
112
- @word[1] << content
113
- else
114
- error_unbalanced
115
- end
116
- else
117
- error_unbalanced
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
 
@@ -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
@@ -136,7 +136,8 @@ require 'strscan'
136
136
  @word[1] << @src.matched
137
137
 
138
138
  when @src.scan(/\{/o)
139
- scan_literal(@src.matched)
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(content = '')
169
- @brace_level += 1
170
- content << @src.scan_until(/[^\\][\{\}]/o).to_s # TODO accept empty braces {}
171
- case @src.matched
172
- when /\{/
173
- scan_braced_expression(content)
174
- when /\}/
175
- @brace_level -= 1
176
- if @brace_level >= 0
177
- @word[1] << content
178
- else
179
- error_unbalanced
180
- end
181
- else
182
- error_unbalanced
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
 
@@ -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
@@ -18,6 +18,6 @@
18
18
 
19
19
  module BibTeX
20
20
  module Version
21
- STRING = '1.3.2'.freeze
21
+ STRING = '1.3.3'.freeze
22
22
  end
23
23
  end
@@ -137,5 +137,8 @@ module BibTeX
137
137
 
138
138
  end
139
139
 
140
+
141
+
142
+
140
143
  end
141
144
  end
@@ -1,5 +1,8 @@
1
1
  require File.expand_path('../../lib/bibtex.rb', __FILE__)
2
2
 
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
3
6
  require 'mini_shoulda'
4
7
  require 'minitest/autorun'
5
8
  require 'redgreen'
@@ -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.2
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-05-21 00:00:00 +02:00
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: racc
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: "1.4"
23
+ version: "0.8"
25
24
  type: :development
25
+ prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: mini_shoulda
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: "0.3"
34
+ version: "1.4"
36
35
  type: :development
36
+ prerelease: false
37
37
  version_requirements: *id002
38
38
  - !ruby/object:Gem::Dependency
39
- name: mynyml-redgreen
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.7"
45
+ version: "0.3"
47
46
  type: :development
47
+ prerelease: false
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
- name: autowatchr
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.1"
56
+ version: "0.7"
58
57
  type: :development
58
+ prerelease: false
59
59
  version_requirements: *id004
60
60
  - !ruby/object:Gem::Dependency
61
- name: cucumber
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.10"
67
+ version: "0.1"
69
68
  type: :development
69
+ prerelease: false
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: json
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: "1.5"
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