bibtex-ruby 3.1.1 → 3.1.2

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: 4ebc35f0ed6cd31025b806b1dd863c89b345c88e
4
- data.tar.gz: 9d238e137990f200ea53b92e19ddf96dd147a5df
3
+ metadata.gz: c042ba0b1e7763904a6e41fa5c0d3de2df2c1963
4
+ data.tar.gz: 8bbe22f8178cd6e3072093d2b3bb83fc03145061
5
5
  SHA512:
6
- metadata.gz: f5ea802c71afacd7749595702d997e0da04d03dad30e70366765d384fa14a81f8dc7191e8de159fde6f51b755e880068a43cae403b1d43b8b715bc6baf94dd60
7
- data.tar.gz: 0baa93fb426d8c8ceeca8f902fb6db70203ebff5bd37be53023b5e3b7abf4fa2f6f928445faaf265ba11d53e9707b63615b4c1af9aa26c27822d2db316220b3d
6
+ metadata.gz: 296d227e81b7e250bf4bad9385d4a6e6cdc1183385ec4074faac0328824f9718446990b95f7adba20272c930b7ace932a61dddcb5bb68349900c2d0a4a4d3ad6
7
+ data.tar.gz: f15dfaff08f2883c5b304b164e01f0cb39f7ef8e0c267ecfad3d43260e1e6a295adb21c0df1592915534fcccc27e4d3fd956dd8ada0817e55ca007b42f33cfbd
data/Gemfile CHANGED
@@ -19,6 +19,9 @@ group :test do
19
19
  gem 'minitest-ansi'
20
20
  gem 'cucumber', '~>1.3'
21
21
  gem 'unicode', '~>0.4', :platforms => [:rbx, :mswin, :mingw, :mri_19, :mri_20, :mri_21]
22
+ gem 'simplecov', '~>0.8', :require => false, :platforms => [:ruby_21, :ruby_20]
23
+ gem 'rubinius-coverage', :require => false, :platforms => :rbx
24
+ gem 'coveralls', '~>0.7', :require => false
22
25
  end
23
26
 
24
27
  group :extra do
@@ -34,8 +37,6 @@ end
34
37
  group :profile do
35
38
  gem 'ruby-prof', '~>0.14', :platforms => [:mri_19, :mri_20, :mri_21]
36
39
  gem 'gnuplot', '~>2.4', :platforms => [:mri_19, :mri_20, :mri_21]
37
- gem 'simplecov', '~>0.8', :require => false, :platforms => [:ruby_21, :ruby_20]
38
- gem 'rubinius-coverage', :require => false, :platforms => :rbx
39
40
  end
40
41
 
41
42
  group :development do
@@ -1,3 +1,8 @@
1
+ 3.1.2 / 2014-01-29
2
+ ==================
3
+
4
+ * Improve CiteProc export (thanks @andriusvelykis)
5
+
1
6
  3.1.1 / 2014-01-20
2
7
  ==================
3
8
 
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  BibTeX-Ruby
2
2
  ===========
3
3
  [![Build Status](https://secure.travis-ci.org/inukshuk/bibtex-ruby.png?branch=master)](http://travis-ci.org/inukshuk/bibtex-ruby)
4
+ [![Coverage Status](https://coveralls.io/repos/inukshuk/bibtex-ruby/badge.png)](https://coveralls.io/r/inukshuk/bibtex-ruby)
4
5
 
5
6
  BibTeX-Ruby is the Rubyist's swiss-army-knife for all things BibTeX. It
6
7
  includes a parser for all common BibTeX objects (@string, @preamble, @comment
data/Rakefile CHANGED
@@ -38,6 +38,9 @@ rescue LoadError
38
38
  end
39
39
  end
40
40
 
41
+ require 'coveralls/rake/task'
42
+ Coveralls::RakeTask.new
43
+ task :test_with_coveralls => [:test, :features, 'coveralls:push']
41
44
 
42
45
  task :default => [:test, :features]
43
46
 
@@ -82,6 +85,8 @@ end
82
85
 
83
86
 
84
87
  desc 'Updates the Manifest file'
88
+ require 'coveralls' if ENV['CI']
89
+ require 'coveralls' if ENV['CI']
85
90
  task :manifest => ['clean', 'racc'] do
86
91
  m = File.open('Manifest', 'w')
87
92
  m.print FileList['**/*'].reject{ |f|
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  export/conversion to formats such as YAML, JSON, CSL, and XML (BibTeXML).
26
26
  END_DESCRIPTION
27
27
 
28
- s.add_runtime_dependency('latex-decode', ['>=0.0.6'])
28
+ s.add_runtime_dependency('latex-decode', ['~>0.0'])
29
29
 
30
30
  s.files = File.open('Manifest').readlines.map(&:chomp)
31
31
  s.test_files = Dir.glob('test/**/test*.rb')
@@ -1,5 +1,6 @@
1
1
  begin
2
2
  require 'simplecov'
3
+ require 'coveralls' if ENV['CI']
3
4
  rescue LoadError
4
5
  # ignore
5
6
  end
@@ -1,17 +1,21 @@
1
1
  class BibTeX::Entry::CiteProcConverter
2
2
  CSL_FILTER = Hash.new { |h, k| k }.merge(Hash[*%w{
3
- date issued
4
- isbn ISBN
5
- booktitle container-title
6
- journal container-title
7
- series collection-title
8
- address publisher-place
9
- pages page
10
- number issue
11
- url URL
12
- doi DOI
13
- year issued
14
- type genre
3
+ date issued
4
+ isbn ISBN
5
+ booktitle container-title
6
+ journal container-title
7
+ series collection-title
8
+ address publisher-place
9
+ pages page
10
+ number issue
11
+ url URL
12
+ doi DOI
13
+ year issued
14
+ type genre
15
+ school publisher
16
+ institution publisher
17
+ organization publisher
18
+ howpublished publisher
15
19
  }.map(&:intern)]).freeze
16
20
 
17
21
  CSL_FIELDS = %w{
@@ -35,9 +39,8 @@ class BibTeX::Entry::CiteProcConverter
35
39
  inproceedings paper-conference
36
40
  manual book
37
41
  mastersthesis thesis
38
- misc article
39
42
  phdthesis thesis
40
- proceedings paper-conference
43
+ proceedings book
41
44
  techreport report
42
45
  unpublished manuscript
43
46
  article article-journal
@@ -57,7 +60,15 @@ class BibTeX::Entry::CiteProcConverter
57
60
  bibtex.parse_month
58
61
 
59
62
  bibtex.each_pair do |key, value|
60
- hash[CSL_FILTER[key].to_s] = value.to_citeproc(options) unless BibTeX::Entry::DATE_FIELDS.include?(key)
63
+ unless BibTeX::Entry::DATE_FIELDS.include?(key)
64
+ cp_key = CSL_FILTER[key].to_s
65
+
66
+ if hash.key?(cp_key)
67
+ hash[key] = value.to_citeproc(options)
68
+ else
69
+ hash[cp_key] = value.to_citeproc(options)
70
+ end
71
+ end
61
72
  end
62
73
 
63
74
  methods = self.class.instance_methods(false) - [:convert!]
@@ -66,6 +77,24 @@ class BibTeX::Entry::CiteProcConverter
66
77
  hash
67
78
  end
68
79
 
80
+ def conferences
81
+ return unless [:conference, :proceedings, :inproceedings].include?(bibtex.type)
82
+
83
+ if bibtex.field?(:organization) && bibtex.field?(:publisher)
84
+ hash['authority'] = bibtex[:organization]
85
+ hash['publisher'] = bibtex[:publisher]
86
+ end
87
+
88
+ if bibtex.field? :address
89
+ hash['event-place'] = bibtex[:address]
90
+ end
91
+ end
92
+
93
+ def techreport
94
+ return unless bibtex.type == :techreport
95
+ hash['number'] = bibtex[:number].to_s if bibtex.field? :number
96
+ end
97
+
69
98
  def date
70
99
  return unless bibtex.field?(:year)
71
100
 
@@ -20,7 +20,7 @@ module BibTeX
20
20
  module Version
21
21
  MAJOR = 3
22
22
  MINOR = 1
23
- PATCH = 1
23
+ PATCH = 2
24
24
  BUILD = nil
25
25
 
26
26
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').freeze
@@ -259,27 +259,75 @@ module BibTeX
259
259
  assert_equal 'Moby Dick', e[:foo]
260
260
  end
261
261
 
262
- it 'supports citeproc export' do
263
- e = @entry.to_citeproc
264
- assert_equal 'book', e['type']
265
- assert_equal 'New York', e['publisher-place']
266
- assert_equal [1993,11], e['issued']['date-parts'][0]
267
- assert_equal 1, e['author'].length
268
- assert_equal 'Herman', e['author'][0]['given']
269
- assert_equal 'Melville', e['author'][0]['family']
270
- end
262
+ describe 'citeproc export' do
263
+ it 'supports citeproc export' do
264
+ e = @entry.to_citeproc
265
+ assert_equal 'book', e['type']
266
+ assert_equal 'New York', e['publisher-place']
267
+ assert_equal [1993,11], e['issued']['date-parts'][0]
268
+ assert_equal 1, e['author'].length
269
+ assert_equal 'Herman', e['author'][0]['given']
270
+ assert_equal 'Melville', e['author'][0]['family']
271
+ end
272
+
273
+ it 'sets both issue and number in techreports' do
274
+ report = Entry.new { |r|
275
+ r.type = :techreport
276
+ r.number = 1
277
+ }.to_citeproc
278
+
279
+ assert_equal '1', report['number']
280
+ assert_equal '1', report['issue']
281
+ end
282
+
283
+ it 'uses authority and publisher for proceedings' do
284
+ proceedings = Entry.new { |p|
285
+ p.type = :inproceedings
286
+ p.publisher = 'Publisher'
287
+ p.organization = 'Organization'
288
+ }.to_citeproc
289
+
290
+ assert_equal 'Publisher', proceedings['publisher']
291
+ assert_equal 'Organization', proceedings['authority']
292
+
293
+ proceedings = Entry.new { |p|
294
+ p.type = :inproceedings
295
+ p.organization = 'Organization'
296
+ }.to_citeproc
297
+
298
+ assert_equal 'Organization', proceedings['publisher']
299
+ refute proceedings.key?('authority')
271
300
 
272
- it 'support literal dates in citeproc export' do
273
- @entry.year = 'Test'
274
- e = @entry.to_citeproc
275
- assert_equal({ 'literal' => 'Test' }, e['issued'])
301
+ proceedings = Entry.new { |p|
302
+ p.type = :inproceedings
303
+ p.publisher = 'Publisher'
304
+ }.to_citeproc
305
+
306
+ assert_equal 'Publisher', proceedings['publisher']
307
+ refute proceedings.key?('authority')
308
+ end
309
+
310
+ it 'uses event_place for conferences' do
311
+ conference = Entry.new { |p|
312
+ p.type = :conference
313
+ p.address = 'Place'
314
+ }.to_citeproc
315
+
316
+ assert_equal 'Place', conference['event-place']
317
+ end
318
+
319
+ it 'support literal dates in citeproc export' do
320
+ @entry.year = 'Test'
321
+ e = @entry.to_citeproc
322
+ assert_equal({ 'literal' => 'Test' }, e['issued'])
323
+ end
276
324
  end
277
325
 
278
326
  describe 'given a filter object or a filter name' do
279
327
  before do
280
328
  @filter = Object.new
281
329
  def @filter.apply (value); value.is_a?(::String) ? value.upcase : value; end
282
-
330
+
283
331
  class SuffixB < BibTeX::Filter
284
332
  def apply(value)
285
333
  value.is_a?(::String) ? "#{value}b" : value
@@ -1,5 +1,6 @@
1
1
  begin
2
2
  require 'simplecov'
3
+ require 'coveralls' if ENV['CI']
3
4
  rescue LoadError
4
5
  # ignore
5
6
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibtex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
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-01-20 00:00:00.000000000 Z
11
+ date: 2014-01-29 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
- version: 0.0.6
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
- version: 0.0.6
26
+ version: '0.0'
27
27
  description: |
28
28
  BibTeX-Ruby is the Rubyist's swiss-army-knife for all things BibTeX. It
29
29
  includes a parser for all common BibTeX objects (@string, @preamble,