citeproc-ruby 0.0.5 → 0.0.6
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/lib/citeproc/processor.rb +1 -1
- data/lib/citeproc/version.rb +1 -1
- data/lib/csl/nodes.rb +30 -11
- data/spec/citeproc/citeproc_spec.rb +4 -0
- data/spec/citeproc/processor_spec.rb +2 -2
- metadata +15 -15
data/lib/citeproc/processor.rb
CHANGED
data/lib/citeproc/version.rb
CHANGED
data/lib/csl/nodes.rb
CHANGED
@@ -178,7 +178,7 @@ module CSL
|
|
178
178
|
|
179
179
|
unless processor.nil?
|
180
180
|
yield processor.locale.send(type)
|
181
|
-
yield CSL::Locale.new(processor.language)
|
181
|
+
yield CSL::Locale.new(processor.language).send(type)
|
182
182
|
end
|
183
183
|
|
184
184
|
CSL.default_locale.send(type)[key]
|
@@ -575,8 +575,8 @@ module CSL
|
|
575
575
|
|
576
576
|
year = date.year.abs.to_s
|
577
577
|
year = year[-2..-1] if form == 'short'
|
578
|
-
year = [year, localized_terms('ad')].join if date.ad?
|
579
|
-
year = [year, localized_terms('bc')].join if date.bc?
|
578
|
+
year = [year, localized_terms('ad', processor)].join if date.ad?
|
579
|
+
year = [year, localized_terms('bc', processor)].join if date.bc?
|
580
580
|
year
|
581
581
|
end
|
582
582
|
|
@@ -666,7 +666,7 @@ module CSL
|
|
666
666
|
def process(data, processor)
|
667
667
|
number = data[variable]
|
668
668
|
|
669
|
-
term = localized_terms(variable)
|
669
|
+
term = localized_terms(variable, processor)
|
670
670
|
attributes['gender-form'] = term.gender if term.has_gender?
|
671
671
|
|
672
672
|
case
|
@@ -843,7 +843,7 @@ module CSL
|
|
843
843
|
# name in the list.
|
844
844
|
def ampersand(processor)
|
845
845
|
if self.and?
|
846
|
-
ampersand = self.and == 'symbol' ? '&' : localized_terms(self.and == 'text' ? 'and' : self.and).to_s(attributes)
|
846
|
+
ampersand = self.and == 'symbol' ? '&' : localized_terms(self.and == 'text' ? 'and' : self.and, processor).to_s(attributes)
|
847
847
|
delimiter_precedes_last? ? [delimiter, ampersand, ' '].join : ampersand.center(ampersand.length + 2)
|
848
848
|
else
|
849
849
|
delimiter
|
@@ -902,8 +902,7 @@ module CSL
|
|
902
902
|
attr_accessor :parent
|
903
903
|
|
904
904
|
def process(data, processor)
|
905
|
-
|
906
|
-
localized_terms(term || 'et-al').to_s(attributes)
|
905
|
+
localized_terms(term || 'et-al', processor).to_s(attributes)
|
907
906
|
rescue Exception => e
|
908
907
|
handle_processing_error(e, data, processor)
|
909
908
|
end
|
@@ -937,13 +936,13 @@ module CSL
|
|
937
936
|
attr_fields %w{ variable plural form }
|
938
937
|
|
939
938
|
def process(data, processor)
|
940
|
-
localized_terms(data['label'].to_s).to_s(attributes.merge({ 'plural' => plural?(data, 0).to_s }))
|
939
|
+
localized_terms(data['label'].to_s, processor).to_s(attributes.merge({ 'plural' => plural?(data, 0).to_s }))
|
941
940
|
rescue Exception => e
|
942
941
|
handle_processing_error(e, data, processor)
|
943
942
|
end
|
944
943
|
|
945
944
|
def process_names(role, number, processor)
|
946
|
-
localized_terms(role).to_s(attributes.merge({ 'plural' => plural?(nil, number).to_s }))
|
945
|
+
localized_terms(role, processor).to_s(attributes.merge({ 'plural' => plural?(nil, number).to_s }))
|
947
946
|
rescue Exception => e
|
948
947
|
handle_processing_error(e, data, processor)
|
949
948
|
end
|
@@ -996,6 +995,8 @@ module CSL
|
|
996
995
|
|
997
996
|
def process(data, processor)
|
998
997
|
super
|
998
|
+
start_observing(data)
|
999
|
+
|
999
1000
|
children.each do |child|
|
1000
1001
|
processed = child.process(data, processor)
|
1001
1002
|
return processed unless processed.empty?
|
@@ -1003,8 +1004,26 @@ module CSL
|
|
1003
1004
|
''
|
1004
1005
|
rescue Exception => e
|
1005
1006
|
handle_processing_error(e, data, processor)
|
1007
|
+
ensure
|
1008
|
+
stop_observing(data)
|
1006
1009
|
end
|
1007
1010
|
|
1011
|
+
def start_observing(item)
|
1012
|
+
@item = item
|
1013
|
+
item.add_observer(self)
|
1014
|
+
end
|
1015
|
+
|
1016
|
+
def stop_observing(item)
|
1017
|
+
item.delete_observer(self)
|
1018
|
+
ensure
|
1019
|
+
@item = nil
|
1020
|
+
end
|
1021
|
+
|
1022
|
+
def update(key, value)
|
1023
|
+
if key.to_s =~ /author|editor|translator/ && !value.nil?
|
1024
|
+
@item[key] = nil
|
1025
|
+
end
|
1026
|
+
end
|
1008
1027
|
end
|
1009
1028
|
|
1010
1029
|
# The cs:names element can be used to display the contents of one or more
|
@@ -1077,7 +1096,7 @@ module CSL
|
|
1077
1096
|
|
1078
1097
|
if names.length > truncated.length
|
1079
1098
|
# use delimiter before et al. if there is more than a single name; squeeze whitespace
|
1080
|
-
others = (et_al.nil? ? localized_terms('et-al').to_s : et_al.process(data, processor))
|
1099
|
+
others = (et_al.nil? ? localized_terms('et-al', processor).to_s : et_al.process(data, processor))
|
1081
1100
|
link = (name.et_al_use_first.to_i > 1 || name.delimiter_precedes_et_al? ? name.delimiter : ' ')
|
1082
1101
|
|
1083
1102
|
processed << [link, others].join.squeeze(' ')
|
@@ -1108,7 +1127,7 @@ module CSL
|
|
1108
1127
|
# followed by the list proper.
|
1109
1128
|
def collect_names(item)
|
1110
1129
|
return [] unless self.variable?
|
1111
|
-
self.variable.split(/\s+/).map { |variable| [variable, (item[variable] || []).map(&:clone)] }
|
1130
|
+
self.variable.split(/\s+/).map { |variable| [variable, (item[variable] || []).map(&:clone)] }.reject { |(_, n)| n.empty? }
|
1112
1131
|
end
|
1113
1132
|
|
1114
1133
|
def inherit_attributes(node)
|
@@ -37,6 +37,10 @@ module CiteProc
|
|
37
37
|
proc.import(fixture['input'])
|
38
38
|
proc.format = :html
|
39
39
|
|
40
|
+
if tokens[1] =~ /LocalizedDateFormats-([\w-]+)/
|
41
|
+
proc.locale = $1
|
42
|
+
end
|
43
|
+
|
40
44
|
proc.add_abbreviations(fixture['abbreviations']) if fixture['abbreviations']
|
41
45
|
|
42
46
|
case fixture['mode']
|
@@ -13,8 +13,8 @@ module CiteProc
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'returns a formatted citation' do
|
16
|
-
Processor.process(item, :mode => :citation, :style => :apa).should == '(Poe, 1996)'
|
17
|
-
Processor.process(item, :mode => :citation, :style => :mla).should == '(Poe)'
|
16
|
+
Processor.process(item, :mode => :citation, :style => :apa)[0].should == '(Poe, 1996)'
|
17
|
+
Processor.process(item, :mode => :citation, :style => :mla)[0].should == '(Poe)'
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'returns a formatted bibliographic entry' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: citeproc-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-21 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: logging
|
16
|
-
requirement: &
|
16
|
+
requirement: &70271244355620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.5'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70271244355620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &70271244354860 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.5'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70271244354860
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70271244353520 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.1'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70271244353520
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
requirement: &
|
49
|
+
requirement: &70271244370300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70271244370300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &70271244368520 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0.9'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70271244368520
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70271244366160 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '2.9'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70271244366160
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: cucumber
|
82
|
-
requirement: &
|
82
|
+
requirement: &70271244364740 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '1.1'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70271244364740
|
91
91
|
description: A CSL (Citation Style Language) Processor
|
92
92
|
email:
|
93
93
|
- http://sylvester.keil.or.at
|