citeproc-ruby 1.0.3 → 1.0.4
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/features/renderer.feature +2 -2
- data/features/step_definitions/renderer.rb +7 -7
- data/features/support/env.rb +1 -1
- data/lib/citeproc/ruby/format.rb +7 -13
- data/lib/citeproc/ruby/version.rb +1 -1
- data/spec/citeproc/ruby/engine_spec.rb +16 -16
- data/spec/citeproc/ruby/formats/default_spec.rb +43 -43
- data/spec/citeproc/ruby/formats/html_spec.rb +24 -24
- data/spec/citeproc/ruby/renderer/choose_spec.rb +59 -59
- data/spec/citeproc/ruby/renderer/date_spec.rb +23 -23
- data/spec/citeproc/ruby/renderer/group_spec.rb +10 -10
- data/spec/citeproc/ruby/renderer/history_spec.rb +8 -8
- data/spec/citeproc/ruby/renderer/label_spec.rb +31 -31
- data/spec/citeproc/ruby/renderer/layout_spec.rb +3 -3
- data/spec/citeproc/ruby/renderer/macro_spec.rb +2 -2
- data/spec/citeproc/ruby/renderer/names_spec.rb +76 -76
- data/spec/citeproc/ruby/renderer/number_spec.rb +13 -13
- data/spec/citeproc/ruby/renderer/text_spec.rb +17 -17
- data/spec/citeproc/ruby/renderer_spec.rb +32 -32
- metadata +12 -12
@@ -16,12 +16,12 @@ module CiteProc
|
|
16
16
|
|
17
17
|
describe 'given an empty node' do
|
18
18
|
it 'returns an empty string for an empty item' do
|
19
|
-
renderer.render_number(item, node).
|
19
|
+
expect(renderer.render_number(item, node)).to eq('')
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'returns an empty string for an item with variables' do
|
23
23
|
item.data.edition = 'foo'
|
24
|
-
renderer.render_number(item, node).
|
24
|
+
expect(renderer.render_number(item, node)).to eq('')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -29,14 +29,14 @@ module CiteProc
|
|
29
29
|
before(:each) { node[:variable] = :edition }
|
30
30
|
|
31
31
|
it 'returns an empty string for an empty item' do
|
32
|
-
renderer.render_number(item, node).
|
32
|
+
expect(renderer.render_number(item, node)).to eq('')
|
33
33
|
end
|
34
34
|
|
35
35
|
describe 'and an item with a corresponding text value' do
|
36
36
|
before(:each) { item.data.edition = 'foo,bar' }
|
37
37
|
|
38
38
|
it 'returns the text value as is' do
|
39
|
-
renderer.render_number(item, node).
|
39
|
+
expect(renderer.render_number(item, node)).to eq('foo,bar')
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -44,14 +44,14 @@ module CiteProc
|
|
44
44
|
before(:each) { item.data.edition = '42' }
|
45
45
|
|
46
46
|
it 'returns the number as a string' do
|
47
|
-
renderer.render_number(item, node).
|
47
|
+
expect(renderer.render_number(item, node)).to eq('42')
|
48
48
|
end
|
49
49
|
|
50
50
|
describe 'when the node is set to roman' do
|
51
51
|
before(:each) { node[:form] = :roman }
|
52
52
|
|
53
53
|
it 'returns the number romanized' do
|
54
|
-
renderer.render_number(item, node).
|
54
|
+
expect(renderer.render_number(item, node)).to eq('xlii')
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -59,7 +59,7 @@ module CiteProc
|
|
59
59
|
before(:each) { node[:form] = :ordinal }
|
60
60
|
|
61
61
|
it 'returns the number ordinalized' do
|
62
|
-
renderer.render_number(item, node).
|
62
|
+
expect(renderer.render_number(item, node)).to eq('42nd')
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -69,14 +69,14 @@ module CiteProc
|
|
69
69
|
before(:each) { item.data.edition = '42, 43 , 44 ,45,46 , 47, 48' }
|
70
70
|
|
71
71
|
it 'returns the numbers as a normalized list' do
|
72
|
-
renderer.render_number(item, node).
|
72
|
+
expect(renderer.render_number(item, node)).to eq('42, 43, 44, 45, 46, 47, 48')
|
73
73
|
end
|
74
74
|
|
75
75
|
describe 'when the node is set to roman' do
|
76
76
|
before(:each) { node[:form] = :roman }
|
77
77
|
|
78
78
|
it 'returns the romanized list' do
|
79
|
-
renderer.render_number(item, node).
|
79
|
+
expect(renderer.render_number(item, node)).to eq('xlii, xliii, xliv, xlv, xlvi, xlvii, xlviii')
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -84,7 +84,7 @@ module CiteProc
|
|
84
84
|
before(:each) { node[:form] = :ordinal }
|
85
85
|
|
86
86
|
it 'returns the ordinalized list' do
|
87
|
-
renderer.render_number(item, node).
|
87
|
+
expect(renderer.render_number(item, node)).to eq('42nd, 43rd, 44th, 45th, 46th, 47th, 48th')
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -93,7 +93,7 @@ module CiteProc
|
|
93
93
|
before(:each) { item.data.edition = '42-44, 46 -51 & 52 - 65& 66- 68' }
|
94
94
|
|
95
95
|
it 'returns the numbers as a normalized list' do
|
96
|
-
renderer.render_number(item, node).
|
96
|
+
expect(renderer.render_number(item, node)).to eq('42-44, 46-51 & 52-65 & 66-68')
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
@@ -101,14 +101,14 @@ module CiteProc
|
|
101
101
|
before(:each) { item.data.edition = 'A42 - B44, 46-51 & 52-65ff' }
|
102
102
|
|
103
103
|
it 'returns the numbers as a normalized list' do
|
104
|
-
renderer.render_number(item, node).
|
104
|
+
expect(renderer.render_number(item, node)).to eq('A42-B44, 46-51 & 52-65ff')
|
105
105
|
end
|
106
106
|
|
107
107
|
describe 'when the node is set to roman' do
|
108
108
|
before(:each) { node[:form] = :roman }
|
109
109
|
|
110
110
|
it 'returns the list with only the simple numbers romanized' do
|
111
|
-
renderer.render_number(item, node).
|
111
|
+
expect(renderer.render_number(item, node)).to eq('A42-B44, xlvi-li & lii-65ff')
|
112
112
|
end
|
113
113
|
end
|
114
114
|
end
|
@@ -16,12 +16,12 @@ module CiteProc
|
|
16
16
|
let(:node) { CSL::Style::Text.new }
|
17
17
|
|
18
18
|
it 'returns an empty string for an empty item' do
|
19
|
-
renderer.render_text(item, node).
|
19
|
+
expect(renderer.render_text(item, node)).to eq('')
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'returns an empty string for an item with variables' do
|
23
23
|
item.data.title = 'foo'
|
24
|
-
renderer.render_text(item, node).
|
24
|
+
expect(renderer.render_text(item, node)).to eq('')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -29,12 +29,12 @@ module CiteProc
|
|
29
29
|
let(:node) { CSL::Style::Text.new(:value => 'foobar') }
|
30
30
|
|
31
31
|
it 'returns the value for an empty item' do
|
32
|
-
renderer.render_text(item, node).
|
32
|
+
expect(renderer.render_text(item, node)).to eq('foobar')
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'returns the value for an item with variables' do
|
36
36
|
item.data.title = 'foo'
|
37
|
-
renderer.render_text(item, node).
|
37
|
+
expect(renderer.render_text(item, node)).to eq('foobar')
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -42,17 +42,17 @@ module CiteProc
|
|
42
42
|
let(:node) { CSL::Style::Text.new(:variable => 'title') }
|
43
43
|
|
44
44
|
it 'returns an empty strong for an empty item' do
|
45
|
-
renderer.render_text(item, node).
|
45
|
+
expect(renderer.render_text(item, node)).to eq('')
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'returns an empty strong for an item with no matching variable' do
|
49
49
|
item.data.publisher = 'the full title'
|
50
|
-
renderer.render_text(item, node).
|
50
|
+
expect(renderer.render_text(item, node)).to eq('')
|
51
51
|
end
|
52
52
|
|
53
53
|
it "returns the variable's value for an item with a matching variable" do
|
54
54
|
item.data.title = 'the full title'
|
55
|
-
renderer.render_text(item, node).
|
55
|
+
expect(renderer.render_text(item, node)).to eq('the full title')
|
56
56
|
end
|
57
57
|
|
58
58
|
describe 'when the form attribute is set to :short' do
|
@@ -63,16 +63,16 @@ module CiteProc
|
|
63
63
|
|
64
64
|
it "prefers the short version if available" do
|
65
65
|
item.data.title_short = 'the short title'
|
66
|
-
renderer.render_text(item, node).
|
66
|
+
expect(renderer.render_text(item, node)).to eq('the short title')
|
67
67
|
end
|
68
68
|
|
69
69
|
it "falls back to the variable if unavailable" do
|
70
|
-
renderer.render_text(item, node).
|
70
|
+
expect(renderer.render_text(item, node)).to eq('the full title')
|
71
71
|
end
|
72
72
|
|
73
73
|
it "falls back to the long form if the short form variable is not present" do
|
74
74
|
node[:variable] = 'title-short'
|
75
|
-
renderer.render_text(item, node).
|
75
|
+
expect(renderer.render_text(item, node)).to eq('the full title')
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -81,19 +81,19 @@ module CiteProc
|
|
81
81
|
let(:node) { CSL::Style::Text.new(:term => 'anonymous') }
|
82
82
|
|
83
83
|
it "returns the term's long form by default" do
|
84
|
-
renderer.render_text(item, node).
|
84
|
+
expect(renderer.render_text(item, node)).to eq('anonymous')
|
85
85
|
end
|
86
86
|
|
87
87
|
describe 'when the form attribute is set to :short' do
|
88
88
|
before(:each) { node[:form] = 'short' }
|
89
89
|
|
90
90
|
it "returns the term's short form by default" do
|
91
|
-
renderer.render_text(item, node).
|
91
|
+
expect(renderer.render_text(item, node)).to eq('anon.')
|
92
92
|
end
|
93
93
|
|
94
94
|
it 'falls back to the long version if there is no short version' do
|
95
95
|
node[:term] = 'et-al'
|
96
|
-
renderer.render_text(item, node).
|
96
|
+
expect(renderer.render_text(item, node)).to eq('et al.')
|
97
97
|
end
|
98
98
|
end
|
99
99
|
end
|
@@ -108,15 +108,15 @@ module CiteProc
|
|
108
108
|
end
|
109
109
|
|
110
110
|
it 'renders the macro' do
|
111
|
-
node.
|
112
|
-
renderer.render(item, node).
|
111
|
+
allow(node).to receive(:macro).and_return(macro)
|
112
|
+
expect(renderer.render(item, node)).to eq('foobar')
|
113
113
|
end
|
114
114
|
|
115
115
|
it 'applies formats to the result' do
|
116
|
-
node.
|
116
|
+
allow(node).to receive(:macro).and_return(macro)
|
117
117
|
node[:prefix] = '('
|
118
118
|
node[:suffix] = ')'
|
119
|
-
renderer.render(item, node).
|
119
|
+
expect(renderer.render(item, node)).to eq('(foobar)')
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
@@ -10,53 +10,53 @@ module CiteProc
|
|
10
10
|
|
11
11
|
describe '#format_page_range' do
|
12
12
|
it 'supports "minimal" format' do
|
13
|
-
renderer.format_page_range('42-45', 'minimal').
|
14
|
-
renderer.format_page_range('321-328', 'minimal').
|
15
|
-
renderer.format_page_range('2787-2816', 'minimal').
|
16
|
-
renderer.format_page_range('8-45', 'minimal').
|
13
|
+
expect(renderer.format_page_range('42-45', 'minimal')).to eq('42–5')
|
14
|
+
expect(renderer.format_page_range('321-328', 'minimal')).to eq('321–8')
|
15
|
+
expect(renderer.format_page_range('2787-2816', 'minimal')).to eq('2787–816')
|
16
|
+
expect(renderer.format_page_range('8-45', 'minimal')).to eq('8–45')
|
17
17
|
|
18
|
-
renderer.format_page_range('42-5', 'minimal').
|
19
|
-
renderer.format_page_range('321-28', 'minimal').
|
20
|
-
renderer.format_page_range('321-8', 'minimal').
|
21
|
-
renderer.format_page_range('2787-816', 'minimal').
|
18
|
+
expect(renderer.format_page_range('42-5', 'minimal')).to eq('42–5')
|
19
|
+
expect(renderer.format_page_range('321-28', 'minimal')).to eq('321–8')
|
20
|
+
expect(renderer.format_page_range('321-8', 'minimal')).to eq('321–8')
|
21
|
+
expect(renderer.format_page_range('2787-816', 'minimal')).to eq('2787–816')
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'supports "minimal-two" format' do
|
25
|
-
renderer.format_page_range('42-45', 'minimal-two').
|
26
|
-
renderer.format_page_range('321-328', 'minimal-two').
|
27
|
-
renderer.format_page_range('2787-2816', 'minimal-two').
|
28
|
-
renderer.format_page_range('2-5', 'minimal-two').
|
29
|
-
renderer.format_page_range('2-402', 'minimal-two').
|
25
|
+
expect(renderer.format_page_range('42-45', 'minimal-two')).to eq('42–45')
|
26
|
+
expect(renderer.format_page_range('321-328', 'minimal-two')).to eq('321–28')
|
27
|
+
expect(renderer.format_page_range('2787-2816', 'minimal-two')).to eq('2787–816')
|
28
|
+
expect(renderer.format_page_range('2-5', 'minimal-two')).to eq('2–5')
|
29
|
+
expect(renderer.format_page_range('2-402', 'minimal-two')).to eq('2–402')
|
30
30
|
|
31
|
-
renderer.format_page_range('42-5', 'minimal-two').
|
32
|
-
renderer.format_page_range('321-28', 'minimal-two').
|
33
|
-
renderer.format_page_range('321-8', 'minimal-two').
|
34
|
-
renderer.format_page_range('2787-816', 'minimal-two').
|
31
|
+
expect(renderer.format_page_range('42-5', 'minimal-two')).to eq('42–45')
|
32
|
+
expect(renderer.format_page_range('321-28', 'minimal-two')).to eq('321–28')
|
33
|
+
expect(renderer.format_page_range('321-8', 'minimal-two')).to eq('321–28')
|
34
|
+
expect(renderer.format_page_range('2787-816', 'minimal-two')).to eq('2787–816')
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'supports "expanded" format' do
|
38
|
-
renderer.format_page_range('42-45', 'expanded').
|
39
|
-
renderer.format_page_range('321-328', 'expanded').
|
40
|
-
renderer.format_page_range('2787-2816', 'expanded').
|
41
|
-
renderer.format_page_range('2-5', 'expanded').
|
42
|
-
renderer.format_page_range('2-402', 'expanded').
|
38
|
+
expect(renderer.format_page_range('42-45', 'expanded')).to eq('42–45')
|
39
|
+
expect(renderer.format_page_range('321-328', 'expanded')).to eq('321–328')
|
40
|
+
expect(renderer.format_page_range('2787-2816', 'expanded')).to eq('2787–2816')
|
41
|
+
expect(renderer.format_page_range('2-5', 'expanded')).to eq('2–5')
|
42
|
+
expect(renderer.format_page_range('2-402', 'expanded')).to eq('2–402')
|
43
43
|
|
44
|
-
renderer.format_page_range('42-5', 'expanded').
|
45
|
-
renderer.format_page_range('321 - 28', 'expanded').
|
46
|
-
renderer.format_page_range('321 -8', 'expanded').
|
47
|
-
renderer.format_page_range('2787- 816', 'expanded').
|
44
|
+
expect(renderer.format_page_range('42-5', 'expanded')).to eq('42–45')
|
45
|
+
expect(renderer.format_page_range('321 - 28', 'expanded')).to eq('321–328')
|
46
|
+
expect(renderer.format_page_range('321 -8', 'expanded')).to eq('321–328')
|
47
|
+
expect(renderer.format_page_range('2787- 816', 'expanded')).to eq('2787–2816')
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'supports "chicago" format' do
|
51
|
-
renderer.format_page_range('3-10; 71-72', 'chicago').
|
52
|
-
renderer.format_page_range('100-104; 600-613; 1100-23', 'chicago').
|
53
|
-
renderer.format_page_range('107-08; 505-517; 1002-006', 'chicago').
|
54
|
-
renderer.format_page_range('321-325; 415-532; 11564-11568; 13792-803', 'chicago').
|
55
|
-
renderer.format_page_range('1496-504; 2787-2816', 'chicago').
|
51
|
+
expect(renderer.format_page_range('3-10; 71-72', 'chicago')).to eq('3–10; 71–72')
|
52
|
+
expect(renderer.format_page_range('100-104; 600-613; 1100-23', 'chicago')).to eq('100–104; 600–613; 1100–1123')
|
53
|
+
expect(renderer.format_page_range('107-08; 505-517; 1002-006', 'chicago')).to eq('107–8; 505–17; 1002–6')
|
54
|
+
expect(renderer.format_page_range('321-325; 415-532; 11564-11568; 13792-803', 'chicago')).to eq('321–25; 415–532; 11564–68; 13792–803')
|
55
|
+
expect(renderer.format_page_range('1496-504; 2787-2816', 'chicago')).to eq('1496–1504; 2787–2816')
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'formats multiple page ranges' do
|
59
|
-
renderer.format_page_range('42-45 and 57; 81-3 & 123-4', 'minimal-two').
|
59
|
+
expect(renderer.format_page_range('42-45 and 57; 81-3 & 123-4', 'minimal-two')).to eq('42–45 and 57; 81–83 & 123–24')
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: citeproc-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
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-
|
11
|
+
date: 2014-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: citeproc
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.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: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: csl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.2'
|
41
41
|
description: |
|
@@ -47,10 +47,10 @@ executables: []
|
|
47
47
|
extensions: []
|
48
48
|
extra_rdoc_files: []
|
49
49
|
files:
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
50
|
+
- .document
|
51
|
+
- .rspec
|
52
|
+
- .simplecov
|
53
|
+
- .yardopts
|
54
54
|
- AGPL
|
55
55
|
- BSDL
|
56
56
|
- Gemfile
|
@@ -117,12 +117,12 @@ require_paths:
|
|
117
117
|
- lib
|
118
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- -
|
120
|
+
- - '>='
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: 1.9.3
|
123
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
|
-
- -
|
125
|
+
- - '>='
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
requirements: []
|