bibtex-ruby 3.1.4 → 3.1.5

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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 317de5c4dd2012e6f142328bbb333a691947fd9b
4
- data.tar.gz: 29835b159b2edf43445c70bec6798f0fddc234c8
3
+ metadata.gz: a9c5960eac9a590e5f05b0a5527dd2ad0943d6ae
4
+ data.tar.gz: adb8c68069904a0d342bfdbad92bc1f0d8525cea
5
5
  SHA512:
6
- metadata.gz: d20eef168fa79d500bb09fc1851eea6db8b110e7d74d0c1590e9639d166f767ec566e664142f588b6ddaec80f8c4968a1b2d5e6641d198205655288a85197092
7
- data.tar.gz: 99c2fc3003f9c4629a7a7ecee5b04ae3416b6cd294c3f31093876565405b5982966a779561c1c03ac17ae815ba66fbeb6ad13bb4cde83727af958276b7cafda4
6
+ metadata.gz: bfb4aa621fcef9031ad62dece59b9c2efe4c506d4f20253f69e78fbc82487e7a43cae2bec14fa02fa7979ac26771b7fc78428e5da8ddfcd7de1a28fc4e54f2eb
7
+ data.tar.gz: 423c6b640f45762e512bb90ee9baa00f11247cfe7a1a5b04c0aa87d148a7e47bf1805d42fab8a3bdb30ced56916e1502e6798d9fba019b33698237fda5889a8e
@@ -1,3 +1,9 @@
1
+ 3.1.5 / 2014-03-25
2
+ ==================
3
+
4
+ * Improve Name#extend_initials
5
+ * Add Name#normalize_initials
6
+
1
7
  3.1.4 / 2014-03-15
2
8
  ==================
3
9
 
data/Rakefile CHANGED
@@ -92,8 +92,6 @@ end
92
92
 
93
93
 
94
94
  desc 'Updates the Manifest file'
95
- require 'coveralls' if ENV['CI']
96
- require 'coveralls' if ENV['CI']
97
95
  task :manifest => ['clean', 'racc'] do
98
96
  m = File.open('Manifest', 'w')
99
97
  m.print FileList['**/*'].reject{ |f|
@@ -164,7 +164,14 @@ module BibTeX
164
164
 
165
165
  # Returns the first name (or the passed-in string) as initials.
166
166
  def initials(token = first)
167
- token.to_s.gsub(/([[:upper:]])[[:lower:]]+\s*/, '\1.')
167
+ token.to_s.gsub(/([[:upper:]])[^[:upper:]\s-]*\s*/, '\1.')
168
+ end
169
+
170
+ def normalize_initials(token = first)
171
+ token = token.dup.to_s
172
+ token.gsub!(/([[:upper:]])([[:upper:]])/, '\1 \2')
173
+ token.gsub!(/\b([[:upper:]])\b[^[:alpha:]-]*/, '\1.')
174
+ token
168
175
  end
169
176
 
170
177
  # Returns true if the first name consists solely of initials.
@@ -176,7 +183,12 @@ module BibTeX
176
183
  # for_last and the current first name has the same initials as with_first.
177
184
  def extend_initials(with_first, for_last)
178
185
  rename_if :first => with_first do |name|
179
- name.last == for_last && name.initials.gsub(/\s+/, '') == initials(with_first).gsub(/\s+/, '')
186
+ if name.last == for_last
187
+ mine = name.initials.split(/\.[^[:alpha:]]*/)
188
+ other = initials(with_first).split(/\.[^[:alpha:]]*/)
189
+
190
+ mine == other || mine.length < other.length && mine == other[0, mine.length]
191
+ end
180
192
  end
181
193
  end
182
194
 
@@ -20,7 +20,7 @@ module BibTeX
20
20
  module Version
21
21
  MAJOR = 3
22
22
  MINOR = 1
23
- PATCH = 4
23
+ PATCH = 5
24
24
  BUILD = nil
25
25
 
26
26
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').freeze
@@ -101,13 +101,41 @@ module BibTeX
101
101
  end
102
102
  end
103
103
 
104
+ describe '#normalize_initials' do
105
+ it 'returns normalized initials of existing initials only' do
106
+ Name.new(:first => 'Edgar A.', :last => 'Poe').normalize_initials.must_equal 'Edgar A.'
107
+ Name.new(:first => 'E.A.', :last => 'Poe').normalize_initials.must_equal 'E.A.'
108
+ Name.new(:first => 'E. A.', :last => 'Poe').normalize_initials.must_equal 'E.A.'
109
+ Name.new(:first => 'E. A', :last => 'Poe').normalize_initials.must_equal 'E.A.'
110
+ Name.new(:first => 'E A', :last => 'Poe').normalize_initials.must_equal 'E.A.'
111
+ Name.new(:first => 'Edgar A P', :last => 'Poe').normalize_initials.must_equal 'Edgar A.P.'
112
+ end
113
+ end
114
+
104
115
  describe '#extend_initials' do
105
116
  it 'extends the first name if the last name and initials match' do
106
117
  Name.new(:first => 'E.A.', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
107
118
  Name.new(:first => 'Edgar A.', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
108
119
  Name.new(:first => 'E. A.', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
120
+ Name.new(:first => 'E. A', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
121
+ Name.new(:first => 'E A', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
109
122
  Name.new(:first => 'E. Allen', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
110
123
  Name.new(:first => 'E.A.', :last => 'Poe').extend_initials('Edgar A.', 'Poe').first.must_equal 'Edgar A.'
124
+
125
+ Name.new(:first => 'Edgar-A.', :last => 'Poe').extend_initials('Edgar-Allen', 'Poe').first.must_equal 'Edgar-Allen'
126
+ Name.new(:first => 'E.-Allen', :last => 'Poe').extend_initials('Edgar-Allen', 'Poe').first.must_equal 'Edgar-Allen'
127
+ Name.new(:first => 'E.-A.', :last => 'Poe').extend_initials('Edgar-Allen', 'Poe').first.must_equal 'Edgar-Allen'
128
+ Name.new(:first => 'E.-A', :last => 'Poe').extend_initials('Edgar-Allen', 'Poe').first.must_equal 'Edgar-Allen'
129
+ Name.new(:first => 'E-A', :last => 'Poe').extend_initials('Edgar-Allen', 'Poe').first.must_equal 'Edgar-Allen'
130
+ end
131
+
132
+ it 'extends the first name if the last name and initials name match with extra middle names' do
133
+ Name.new(:first => 'E.', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
134
+ Name.new(:first => 'E', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
135
+ Name.new(:first => 'Edgar', :last => 'Poe').extend_initials('Edgar Allen', 'Poe').first.must_equal 'Edgar Allen'
136
+
137
+ Name.new(:first => 'E.A.', :last => 'Poe').extend_initials('Edgar', 'Poe').first.must_equal 'E.A.'
138
+ Name.new(:first => 'A.', :last => 'Poe').extend_initials('Edgar', 'Poe').first.must_equal 'A.'
111
139
  end
112
140
 
113
141
  it 'does not extend the first name if the last name or initials do not match' do
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibtex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
4
+ version: 3.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvester Keil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-15 00:00:00.000000000 Z
11
+ date: 2014-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: latex-decode
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.0'
27
27
  description: |
@@ -135,12 +135,12 @@ require_paths:
135
135
  - lib
136
136
  required_ruby_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - ">="
138
+ - - '>='
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
@@ -150,18 +150,18 @@ 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
167
167
  has_rdoc: yard