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.
@@ -14,36 +14,36 @@ module CiteProc
14
14
  let(:node) { CSL::Style::Group.new }
15
15
 
16
16
  it 'returns an empty string by default' do
17
- renderer.render(item, node).should == ''
17
+ expect(renderer.render(item, node)).to eq('')
18
18
 
19
19
  node[:prefix] = '!'
20
- renderer.render(item, node).should == ''
20
+ expect(renderer.render(item, node)).to eq('')
21
21
  end
22
22
 
23
23
  describe 'when there is a text node in the group' do
24
24
  before(:each) { node << CSL::Style::Text.new( :term => 'retrieved') }
25
25
 
26
26
  it 'returns the content of the nested node' do
27
- renderer.render_group(item, node).should == 'retrieved'
27
+ expect(renderer.render_group(item, node)).to eq('retrieved')
28
28
  end
29
29
 
30
30
  it 'applies formatting options to the nested node' do
31
31
  node[:'text-case'] = 'uppercase'
32
- renderer.render(item, node).should == 'RETRIEVED'
32
+ expect(renderer.render(item, node)).to eq('RETRIEVED')
33
33
  end
34
34
 
35
35
  describe 'when there is a second text node in the group' do
36
36
  before(:each) { node << CSL::Style::Text.new( :term => 'from') }
37
37
 
38
38
  it 'returns the content of both nested nodes' do
39
- renderer.render_group(item, node).should == 'retrievedfrom'
39
+ expect(renderer.render_group(item, node)).to eq('retrievedfrom')
40
40
  end
41
41
 
42
42
  describe 'when there is a delimter set on the group node' do
43
43
  before(:each) { node[:delimiter] = ' ' }
44
44
 
45
45
  it 'applies the delimiter to the output' do
46
- renderer.render_group(item, node).should == 'retrieved from'
46
+ expect(renderer.render_group(item, node)).to eq('retrieved from')
47
47
  end
48
48
 
49
49
  it 'applies formatting options to the nested nodes only' do
@@ -51,7 +51,7 @@ module CiteProc
51
51
  node[:delimiter] = ' foo '
52
52
  node[:prefix] = '('
53
53
  node[:suffix] = ')'
54
- renderer.render(item, node).should == '(RETRIEVED foo FROM)'
54
+ expect(renderer.render(item, node)).to eq('(RETRIEVED FOO FROM)')
55
55
  end
56
56
 
57
57
  describe 'when a nested node produces no output' do
@@ -61,7 +61,7 @@ module CiteProc
61
61
  end
62
62
 
63
63
  it 'the delimiter does not apply to it' do
64
- renderer.render_group(item, node).should == 'retrieved from from'
64
+ expect(renderer.render_group(item, node)).to eq('retrieved from from')
65
65
  end
66
66
  end
67
67
 
@@ -69,14 +69,14 @@ module CiteProc
69
69
  before(:each) { node << CSL::Style::Text.new( :variable => 'URL') }
70
70
 
71
71
  it 'returns the empty string when the variable is not present in the item' do
72
- renderer.render_group(item, node).should == ''
72
+ expect(renderer.render_group(item, node)).to eq('')
73
73
  end
74
74
 
75
75
  describe 'when the variable is present' do
76
76
  before(:each) { item.data[:URL] = 'http://example.org' };
77
77
 
78
78
  it 'returns all nested renditions' do
79
- renderer.render_group(item, node).should == 'retrieved from http://example.org'
79
+ expect(renderer.render_group(item, node)).to eq('retrieved from http://example.org')
80
80
  end
81
81
  end
82
82
  end
@@ -8,37 +8,37 @@ module CiteProc
8
8
  let(:history) { state.history }
9
9
 
10
10
  it 'has an empty citation history' do
11
- history.memory['citation'].should == []
11
+ expect(history.memory['citation']).to eq([])
12
12
  end
13
13
 
14
14
  it 'has an empty bibliography history' do
15
- history.memory['bibliogrpahy'].should == []
15
+ expect(history.memory['bibliogrpahy']).to eq([])
16
16
  end
17
17
 
18
18
  describe '#update' do
19
19
  it 'saves the passed in items for :store!' do
20
- lambda {
20
+ expect {
21
21
  history.update :store!, 'citation', { :x => 1 }
22
- }.should change { history.citation }.to([{ :x => 1 }])
22
+ }.to change { history.citation }.to([{ :x => 1 }])
23
23
  end
24
24
 
25
25
  it 'drops remembered items when they are too old' do
26
- lambda {
26
+ expect {
27
27
  history.update :store!, 'citation', { :x => 1 }
28
28
  history.update :store!, 'citation', { :x => 2 }
29
29
  history.update :store!, 'citation', { :x => 3 }
30
30
  history.update :store!, 'citation', { :x => 4 }
31
31
  history.update :store!, 'citation', { :x => 5 }
32
- }.should change { history.citation.length }.to(3)
32
+ }.to change { history.citation.length }.to(3)
33
33
  end
34
34
  end
35
35
 
36
36
  describe '#discard' do
37
37
  it 'clears the history' do
38
38
  history.update :store!, 'bibliography', { :x => 1 }
39
- history.memory.should_not be_empty
39
+ expect(history.memory).not_to be_empty
40
40
  history.discard
41
- history.memory.should be_empty
41
+ expect(history.memory).to be_empty
42
42
  end
43
43
  end
44
44
  end
@@ -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_label(item, node).should == ''
19
+ expect(renderer.render_label(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_label(item, node).should == ''
24
+ expect(renderer.render_label(item, node)).to eq('')
25
25
  end
26
26
  end
27
27
 
@@ -33,27 +33,27 @@ module CiteProc
33
33
 
34
34
  describe "for an item with no page value" do
35
35
  it 'returns an empty string' do
36
- renderer.render_label(item, node).should == ''
36
+ expect(renderer.render_label(item, node)).to eq('')
37
37
  end
38
38
  end
39
39
 
40
40
  describe 'for an item with a page value' do
41
41
  it 'returns the singular label for a number' do
42
42
  item.write_attribute :page, '23'
43
- renderer.render_label(item, node).should == 'page'
43
+ expect(renderer.render_label(item, node)).to eq('page')
44
44
  end
45
45
 
46
46
  it 'returns the plural label for a page-range' do
47
47
  item.write_attribute :page, '23-24'
48
- renderer.render_label(item, node).should == 'pages'
48
+ expect(renderer.render_label(item, node)).to eq('pages')
49
49
  end
50
50
 
51
51
  it 'returns the plural label for multiple pages' do
52
52
  item.write_attribute :page, '23 & 24'
53
- renderer.render_label(item, node).should == 'pages'
53
+ expect(renderer.render_label(item, node)).to eq('pages')
54
54
 
55
55
  item.write_attribute :page, '23, 24, 25'
56
- renderer.render_label(item, node).should == 'pages'
56
+ expect(renderer.render_label(item, node)).to eq('pages')
57
57
  end
58
58
 
59
59
  describe 'when pluralization is contextual' do
@@ -61,12 +61,12 @@ module CiteProc
61
61
 
62
62
  it 'returns the singular label for a number' do
63
63
  item.write_attribute :page, '23'
64
- renderer.render_label(item, node).should == 'page'
64
+ expect(renderer.render_label(item, node)).to eq('page')
65
65
  end
66
66
 
67
67
  it 'returns the plural label for a page-range' do
68
68
  item.write_attribute :page, '23-24'
69
- renderer.render_label(item, node).should == 'pages'
69
+ expect(renderer.render_label(item, node)).to eq('pages')
70
70
  end
71
71
  end
72
72
 
@@ -75,12 +75,12 @@ module CiteProc
75
75
 
76
76
  it 'returns the singular label for a number' do
77
77
  item.write_attribute :page, '1'
78
- renderer.render_label(item, node).should == 'pages'
78
+ expect(renderer.render_label(item, node)).to eq('pages')
79
79
  end
80
80
 
81
81
  it 'returns the plural label for a page-range' do
82
82
  item.write_attribute :page, '1-3'
83
- renderer.render_label(item, node).should == 'pages'
83
+ expect(renderer.render_label(item, node)).to eq('pages')
84
84
  end
85
85
  end
86
86
 
@@ -89,12 +89,12 @@ module CiteProc
89
89
 
90
90
  it 'returns the singular label for a number' do
91
91
  item.write_attribute :page, '1'
92
- renderer.render_label(item, node).should == 'page'
92
+ expect(renderer.render_label(item, node)).to eq('page')
93
93
  end
94
94
 
95
95
  it 'returns the plural label for a page-range' do
96
96
  item.write_attribute :page, '1-3'
97
- renderer.render_label(item, node).should == 'page'
97
+ expect(renderer.render_label(item, node)).to eq('page')
98
98
  end
99
99
  end
100
100
  end
@@ -108,22 +108,22 @@ module CiteProc
108
108
 
109
109
  describe "for an item with no 'number-of-pages' value" do
110
110
  it 'returns an empty string' do
111
- renderer.render_label(item, node).should == ''
111
+ expect(renderer.render_label(item, node)).to eq('')
112
112
  end
113
113
  end
114
114
 
115
115
  describe "for an item with a 'number-of-pages' value" do
116
116
  it 'returns the singular label for number 1' do
117
117
  item.data[:'number-of-pages'] = 1
118
- renderer.render_label(item, node).should == 'page'
118
+ expect(renderer.render_label(item, node)).to eq('page')
119
119
  end
120
120
 
121
121
  it 'returns the plural label for numbers higher than 1' do
122
122
  item.data[:'number-of-pages'] = '2'
123
- renderer.render_label(item, node).should == 'pages'
123
+ expect(renderer.render_label(item, node)).to eq('pages')
124
124
 
125
125
  item.data[:'number-of-pages'] = 42
126
- renderer.render_label(item, node).should == 'pages'
126
+ expect(renderer.render_label(item, node)).to eq('pages')
127
127
  end
128
128
 
129
129
  describe 'when pluralization is set to "contextual"' do
@@ -131,15 +131,15 @@ module CiteProc
131
131
 
132
132
  it 'returns the singular label for number 1' do
133
133
  item.data[:'number-of-pages'] = '1'
134
- renderer.render_label(item, node).should == 'page'
134
+ expect(renderer.render_label(item, node)).to eq('page')
135
135
  end
136
136
 
137
137
  it 'returns the plural label for numbers higher than 1' do
138
138
  item.data[:'number-of-pages'] = '2'
139
- renderer.render_label(item, node).should == 'pages'
139
+ expect(renderer.render_label(item, node)).to eq('pages')
140
140
 
141
141
  item.data[:'number-of-pages'] = 42
142
- renderer.render_label(item, node).should == 'pages'
142
+ expect(renderer.render_label(item, node)).to eq('pages')
143
143
  end
144
144
  end
145
145
 
@@ -148,15 +148,15 @@ module CiteProc
148
148
 
149
149
  it 'returns the singular label for number 1' do
150
150
  item.data[:'number-of-pages'] = 1
151
- renderer.render_label(item, node).should == 'pages'
151
+ expect(renderer.render_label(item, node)).to eq('pages')
152
152
  end
153
153
 
154
154
  it 'returns the plural label for numbers higher than 1' do
155
155
  item.data[:'number-of-pages'] = '2'
156
- renderer.render_label(item, node).should == 'pages'
156
+ expect(renderer.render_label(item, node)).to eq('pages')
157
157
 
158
158
  item.data[:'number-of-pages'] = 42
159
- renderer.render_label(item, node).should == 'pages'
159
+ expect(renderer.render_label(item, node)).to eq('pages')
160
160
  end
161
161
  end
162
162
 
@@ -165,15 +165,15 @@ module CiteProc
165
165
 
166
166
  it 'returns the singular label for number 1' do
167
167
  item.data[:'number-of-pages'] = 1
168
- renderer.render_label(item, node).should == 'page'
168
+ expect(renderer.render_label(item, node)).to eq('page')
169
169
  end
170
170
 
171
171
  it 'returns the plural label for numbers higher than 1' do
172
172
  item.data[:'number-of-pages'] = '2'
173
- renderer.render_label(item, node).should == 'page'
173
+ expect(renderer.render_label(item, node)).to eq('page')
174
174
 
175
175
  item.data[:'number-of-pages'] = 42
176
- renderer.render_label(item, node).should == 'page'
176
+ expect(renderer.render_label(item, node)).to eq('page')
177
177
  end
178
178
  end
179
179
  end
@@ -187,15 +187,15 @@ module CiteProc
187
187
  describe "for an item with a 'number-of-volumes' value" do
188
188
  it 'returns the singular label for number 1' do
189
189
  item.data[:'number-of-volumes'] = 1
190
- renderer.render_label(item, node).should == 'volume'
190
+ expect(renderer.render_label(item, node)).to eq('volume')
191
191
  end
192
192
 
193
193
  it 'returns the plural label for numbers higher than 1' do
194
194
  item.data[:'number-of-volumes'] = '2'
195
- renderer.render_label(item, node).should == 'volumes'
195
+ expect(renderer.render_label(item, node)).to eq('volumes')
196
196
 
197
197
  item.data[:'number-of-volumes'] = 42
198
- renderer.render_label(item, node).should == 'volumes'
198
+ expect(renderer.render_label(item, node)).to eq('volumes')
199
199
  end
200
200
  end
201
201
  end
@@ -209,13 +209,13 @@ module CiteProc
209
209
  it "returns the singular label for a single number" do
210
210
  item.locator = 2
211
211
  item.label = 'book'
212
- renderer.render_label(item, node).should == 'book'
212
+ expect(renderer.render_label(item, node)).to eq('book')
213
213
  end
214
214
 
215
215
  it "returns the plural label for multiple numbers" do
216
216
  item.locator = '23 & 4'
217
217
  item.label = 'book'
218
- renderer.render_label(item, node).should == 'books'
218
+ expect(renderer.render_label(item, node)).to eq('books')
219
219
  end
220
220
  end
221
221
  end
@@ -15,7 +15,7 @@ module CiteProc
15
15
  }
16
16
 
17
17
  it 'returns an empty string when empty' do
18
- renderer.render(item, node).should == ''
18
+ expect(renderer.render(item, node)).to eq('')
19
19
  end
20
20
 
21
21
  describe 'with child nodes' do
@@ -25,12 +25,12 @@ module CiteProc
25
25
  end
26
26
 
27
27
  it 'renders each child' do
28
- renderer.render(item, node).should == 'foobar'
28
+ expect(renderer.render(item, node)).to eq('foobar')
29
29
  end
30
30
 
31
31
  it 'uses the delimiters if specified' do
32
32
  node[:delimiter] = '-'
33
- renderer.render(item, node).should == 'foo-bar'
33
+ expect(renderer.render(item, node)).to eq('foo-bar')
34
34
  end
35
35
  end
36
36
 
@@ -15,14 +15,14 @@ module CiteProc
15
15
  }
16
16
 
17
17
  it 'returns an empty string when empty' do
18
- renderer.render(item, node).should == ''
18
+ expect(renderer.render(item, node)).to eq('')
19
19
  end
20
20
 
21
21
  it 'renders each child' do
22
22
  node << CSL::Style::Text.new(:value => 'foo')
23
23
  node << CSL::Style::Text.new(:value => 'bar')
24
24
 
25
- renderer.render(item, node).should == 'foobar'
25
+ expect(renderer.render(item, node)).to eq('foobar')
26
26
  end
27
27
 
28
28
  end
@@ -21,12 +21,12 @@ module CiteProc
21
21
 
22
22
  describe 'given an empty node' do
23
23
  it 'returns an empty string for an empty item' do
24
- renderer.render(item, node).should == ''
24
+ expect(renderer.render(item, node)).to eq('')
25
25
  end
26
26
 
27
27
  it 'returns an empty string for an item with variables' do
28
28
  item.data.edition = 'foo'
29
- renderer.render_names(item, node).should == ''
29
+ expect(renderer.render_names(item, node)).to eq('')
30
30
  end
31
31
  end
32
32
 
@@ -37,17 +37,17 @@ module CiteProc
37
37
  end
38
38
 
39
39
  it 'formats it in long form' do
40
- renderer.render_names(item, node).should == 'Edgar Allen Poe'
40
+ expect(renderer.render_names(item, node)).to eq('Edgar Allen Poe')
41
41
  end
42
42
 
43
43
  it 'supports nested name node options' do
44
44
  node << CSL::Style::Name.new(:form => 'short')
45
- renderer.render_names(item, node).should == 'Poe'
45
+ expect(renderer.render_names(item, node)).to eq('Poe')
46
46
  end
47
47
 
48
48
  it 'supports nested label node' do
49
49
  node << CSL::Style::Label.new(:prefix => ' [', :suffix => ']')
50
- renderer.render_names(item, node).should == 'Edgar Allen Poe [author]'
50
+ expect(renderer.render_names(item, node)).to eq('Edgar Allen Poe [author]')
51
51
  end
52
52
  end
53
53
 
@@ -58,17 +58,17 @@ module CiteProc
58
58
  end
59
59
 
60
60
  it 'formats them as a list' do
61
- renderer.render_names(item, node).should == 'Plato, Socrates, Aristotle'
61
+ expect(renderer.render_names(item, node)).to eq('Plato, Socrates, Aristotle')
62
62
  end
63
63
 
64
64
  it 'supports nested name node options' do
65
65
  node << CSL::Style::Name.new(:and => 'symbol')
66
- renderer.render_names(item, node).should == 'Plato, Socrates, & Aristotle'
66
+ expect(renderer.render_names(item, node)).to eq('Plato, Socrates, & Aristotle')
67
67
  end
68
68
 
69
69
  it 'supports nested label node' do
70
70
  node << CSL::Style::Label.new(:prefix => ' (', :suffix => ')')
71
- renderer.render_names(item, node).should == 'Plato, Socrates, Aristotle (editors)'
71
+ expect(renderer.render_names(item, node)).to eq('Plato, Socrates, Aristotle (editors)')
72
72
  end
73
73
  end
74
74
 
@@ -79,13 +79,13 @@ module CiteProc
79
79
  end
80
80
 
81
81
  it 'renders all matching lists combinded using default delimiter' do
82
- renderer.render_names(item, node).should == ''
82
+ expect(renderer.render_names(item, node)).to eq('')
83
83
 
84
84
  item.data.author = poe
85
- renderer.render_names(item, node).should == 'Edgar Allen Poe'
85
+ expect(renderer.render_names(item, node)).to eq('Edgar Allen Poe')
86
86
 
87
87
  item.data.editor = philosophers
88
- renderer.render_names(item, node).should == 'Edgar Allen Poe; Plato, Socrates, Aristotle'
88
+ expect(renderer.render_names(item, node)).to eq('Edgar Allen Poe; Plato, Socrates, Aristotle')
89
89
  end
90
90
 
91
91
  it 'keeps the variable order' do
@@ -93,7 +93,7 @@ module CiteProc
93
93
  item.data.editor = philosophers
94
94
 
95
95
  node[:variable] = 'editor author'
96
- renderer.render_names(item, node).should == 'Plato, Socrates, Aristotle; Edgar Allen Poe'
96
+ expect(renderer.render_names(item, node)).to eq('Plato, Socrates, Aristotle; Edgar Allen Poe')
97
97
  end
98
98
 
99
99
  it 'supports labels' do
@@ -102,7 +102,7 @@ module CiteProc
102
102
 
103
103
  node << CSL::Style::Label.new(:prefix => ' (', :suffix => ')')
104
104
 
105
- renderer.render_names(item, node).should == 'Edgar Allen Poe (author); Plato, Socrates, Aristotle (editors)'
105
+ expect(renderer.render_names(item, node)).to eq('Edgar Allen Poe (author); Plato, Socrates, Aristotle (editors)')
106
106
  end
107
107
 
108
108
  it 'resolves the editor translator special case' do
@@ -116,14 +116,14 @@ module CiteProc
116
116
  node.name = { :and => 'symbol', :form => 'short' }
117
117
  node.label = { :prefix => ' (', :suffix => ')' }
118
118
 
119
- renderer.render_names(item, node).should == 'Poe (author); Quinn & Thompson (editors)'
119
+ expect(renderer.render_names(item, node)).to eq('Poe (author); Quinn & Thompson (editors)')
120
120
 
121
121
  item.data.translator = poe
122
- renderer.render_names(item, node).should == 'Poe (translator); Poe (author); Quinn & Thompson (editors)'
122
+ expect(renderer.render_names(item, node)).to eq('Poe (translator); Poe (author); Quinn & Thompson (editors)')
123
123
 
124
124
  item.data.translator = 'Patrick F. Quinn and G. R. Thompson'
125
125
 
126
- renderer.render(item, node).should == 'Quinn & Thompson (editors & translators); Poe (author)'
126
+ expect(renderer.render(item, node)).to eq('Quinn & Thompson (editors & translators); Poe (author)')
127
127
  end
128
128
  end
129
129
  end
@@ -138,65 +138,65 @@ module CiteProc
138
138
 
139
139
  describe 'given an empty node' do
140
140
  it 'returns an empty string given no names' do
141
- renderer.render_name(CiteProc::Names.new, node).should == ''
141
+ expect(renderer.render_name(CiteProc::Names.new, node)).to eq('')
142
142
  end
143
143
 
144
144
  it 'formats the given name in long form' do
145
- renderer.render_name(poe, node).should == 'Edgar Allen Poe'
145
+ expect(renderer.render_name(poe, node)).to eq('Edgar Allen Poe')
146
146
  end
147
147
 
148
148
  it 'formats multiple names delimitted by commas' do
149
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, Aristotle'
149
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, Aristotle')
150
150
  end
151
151
  end
152
152
 
153
153
  describe 'given a node with and "and" attribute' do
154
154
  it 'inserts a delimited connector' do
155
155
  node[:and] = 'symbol'
156
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, & Aristotle'
156
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, & Aristotle')
157
157
 
158
158
  node[:and] = 'text'
159
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, and Aristotle'
159
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, and Aristotle')
160
160
  end
161
161
  end
162
162
 
163
163
  describe 'given a node with delimier-precedes-last' do
164
164
  it 'inserts final delimiter only for three or more names when set to "contextual"' do
165
165
  node.delimiter_contextually_precedes_last!
166
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, Aristotle'
166
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, Aristotle')
167
167
 
168
168
  node[:and] = 'text'
169
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, and Aristotle'
169
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, and Aristotle')
170
170
 
171
- renderer.render_name(philosophers.take(2), node).should == 'Plato and Socrates'
171
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato and Socrates')
172
172
 
173
173
  node[:and] = nil
174
- renderer.render_name(philosophers.take(2), node).should == 'Plato, Socrates'
174
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato, Socrates')
175
175
  end
176
176
 
177
177
  it 'inserts final delimiter when set to "always"' do
178
178
  node.delimiter_always_precedes_last!
179
179
 
180
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, Aristotle'
180
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, Aristotle')
181
181
 
182
182
  node[:and] = 'text'
183
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, and Aristotle'
183
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, and Aristotle')
184
184
 
185
- renderer.render_name(philosophers.take(2), node).should == 'Plato, and Socrates'
185
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato, and Socrates')
186
186
 
187
187
  node[:and] = nil
188
- renderer.render_name(philosophers.take(2), node).should == 'Plato, Socrates'
188
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato, Socrates')
189
189
  end
190
190
 
191
191
  it 'never inserts final delimiter when set to "never" (unless there is no "and")' do
192
192
  node.delimiter_never_precedes_last!
193
193
 
194
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, Aristotle'
195
- renderer.render_name(philosophers.take(2), node).should == 'Plato, Socrates'
194
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, Aristotle')
195
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato, Socrates')
196
196
 
197
197
  node[:and] = 'text'
198
- renderer.render_name(philosophers, node).should == 'Plato, Socrates and Aristotle'
199
- renderer.render_name(philosophers.take(2), node).should == 'Plato and Socrates'
198
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates and Aristotle')
199
+ expect(renderer.render_name(philosophers.take(2), node)).to eq('Plato and Socrates')
200
200
  end
201
201
 
202
202
  it 'supports only-after-inverted-name rule' do
@@ -204,20 +204,20 @@ module CiteProc
204
204
  node.delimiter_precedes_last_after_inverted_name!
205
205
 
206
206
  # always delimit when there is no and!
207
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, T. Williams'
208
- renderer.render_name(names.take(2), node).should == 'J. Doe, S. Smith'
207
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, T. Williams')
208
+ expect(renderer.render_name(names.take(2), node)).to eq('J. Doe, S. Smith')
209
209
 
210
210
  node[:and] = 'text'
211
- renderer.render_name(names, node).should == 'J. Doe, S. Smith and T. Williams'
212
- renderer.render_name(names.take(2), node).should == 'J. Doe and S. Smith'
211
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith and T. Williams')
212
+ expect(renderer.render_name(names.take(2), node)).to eq('J. Doe and S. Smith')
213
213
 
214
214
  node[:'name-as-sort-order'] = 'first'
215
- renderer.render_name(names, node).should == 'Doe, J., S. Smith and T. Williams'
216
- renderer.render_name(names.take(2), node).should == 'Doe, J., and S. Smith'
215
+ expect(renderer.render_name(names, node)).to eq('Doe, J., S. Smith and T. Williams')
216
+ expect(renderer.render_name(names.take(2), node)).to eq('Doe, J., and S. Smith')
217
217
 
218
218
  node[:'name-as-sort-order'] = 'all'
219
- renderer.render_name(names, node).should == 'Doe, J., Smith, S., and Williams, T.'
220
- renderer.render_name(names.take(2), node).should == 'Doe, J., and Smith, S.'
219
+ expect(renderer.render_name(names, node)).to eq('Doe, J., Smith, S., and Williams, T.')
220
+ expect(renderer.render_name(names.take(2), node)).to eq('Doe, J., and Smith, S.')
221
221
  end
222
222
  end
223
223
 
@@ -229,12 +229,12 @@ module CiteProc
229
229
  node[:'et-al-use-first'] = 2
230
230
 
231
231
  others = CSL::Style::EtAl.new(:prefix => '!!')
232
- node.stub(:et_al).and_return(others)
232
+ allow(node).to receive(:et_al).and_return(others)
233
233
 
234
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, !!et al.'
234
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, !!et al.')
235
235
 
236
236
  others[:term] = 'and others'
237
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, !!and others'
237
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, !!and others')
238
238
  end
239
239
 
240
240
  it 'supports et-al-use-last' do
@@ -243,10 +243,10 @@ module CiteProc
243
243
  node[:'et-al-use-last'] = true
244
244
 
245
245
  # truncated list must be at least two names short!
246
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, et al.'
246
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, et al.')
247
247
 
248
248
  node[:'et-al-use-first'] = 1
249
- renderer.render_name(names, node).should == 'J. Doe, … T. Williams'
249
+ expect(renderer.render_name(names, node)).to eq('J. Doe, … T. Williams')
250
250
  end
251
251
 
252
252
  describe 'with default delimiter settings' do
@@ -254,17 +254,17 @@ module CiteProc
254
254
  node[:'et-al-min'] = 3
255
255
  node[:'et-al-use-first'] = 2
256
256
 
257
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, et al.'
257
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, et al.')
258
258
 
259
259
  node[:'et-al-use-first'] = 1
260
- renderer.render_name(names, node).should == 'J. Doe et al.'
260
+ expect(renderer.render_name(names, node)).to eq('J. Doe et al.')
261
261
  end
262
262
 
263
263
  it 'does not truncate the list if it is less than et-al-min' do
264
264
  node[:'et-al-min'] = 4
265
265
  node[:'et-al-use-first'] = 2
266
266
 
267
- renderer.render_name(names, node).should == 'J. Doe, S. Smith, T. Williams'
267
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith, T. Williams')
268
268
  end
269
269
  end
270
270
 
@@ -274,17 +274,17 @@ module CiteProc
274
274
  node.truncate_at! 2
275
275
 
276
276
  # default behaviour should match contextual!
277
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, et al.'
277
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, et al.')
278
278
 
279
279
  node.truncate_at! 1
280
- renderer.render_name(philosophers, node).should == 'Plato et al.'
280
+ expect(renderer.render_name(philosophers, node)).to eq('Plato et al.')
281
281
 
282
282
  # set contextual explicitly
283
283
  node.delimiter_contextually_precedes_et_al!
284
- renderer.render_name(philosophers, node).should == 'Plato et al.'
284
+ expect(renderer.render_name(philosophers, node)).to eq('Plato et al.')
285
285
 
286
286
  node.truncate_at! 2
287
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, et al.'
287
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, et al.')
288
288
  end
289
289
 
290
290
  it 'inserts delimiter when set to "always"' do
@@ -292,10 +292,10 @@ module CiteProc
292
292
  node.truncate_at! 2
293
293
 
294
294
  node.delimiter_always_precedes_et_al!
295
- renderer.render_name(philosophers, node).should == 'Plato, Socrates, et al.'
295
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates, et al.')
296
296
 
297
297
  node.truncate_at! 1
298
- renderer.render_name(philosophers, node).should == 'Plato, et al.'
298
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, et al.')
299
299
  end
300
300
 
301
301
  it 'never inserts delimiter when set to "never"' do
@@ -303,10 +303,10 @@ module CiteProc
303
303
  node.truncate_at! 2
304
304
 
305
305
  node.delimiter_never_precedes_et_al!
306
- renderer.render_name(philosophers, node).should == 'Plato, Socrates et al.'
306
+ expect(renderer.render_name(philosophers, node)).to eq('Plato, Socrates et al.')
307
307
 
308
308
  node.truncate_at! 1
309
- renderer.render_name(philosophers, node).should == 'Plato et al.'
309
+ expect(renderer.render_name(philosophers, node)).to eq('Plato et al.')
310
310
  end
311
311
 
312
312
  it 'supports only-after-inverted-name rule' do
@@ -315,19 +315,19 @@ module CiteProc
315
315
 
316
316
  node.delimiter_precedes_et_al_after_inverted_name!
317
317
 
318
- renderer.render_name(names, node).should == 'J. Doe, S. Smith et al.'
318
+ expect(renderer.render_name(names, node)).to eq('J. Doe, S. Smith et al.')
319
319
 
320
320
  node[:'name-as-sort-order'] = 'first'
321
- renderer.render_name(names, node).should == 'Doe, J., S. Smith et al.'
321
+ expect(renderer.render_name(names, node)).to eq('Doe, J., S. Smith et al.')
322
322
 
323
323
  node.truncate_at! 1
324
- renderer.render_name(names, node).should == 'Doe, J., et al.'
324
+ expect(renderer.render_name(names, node)).to eq('Doe, J., et al.')
325
325
 
326
326
  node[:'name-as-sort-order'] = 'all'
327
- renderer.render_name(names, node).should == 'Doe, J., et al.'
327
+ expect(renderer.render_name(names, node)).to eq('Doe, J., et al.')
328
328
 
329
329
  node.truncate_at! 2
330
- renderer.render_name(names, node).should == 'Doe, J., Smith, S., et al.'
330
+ expect(renderer.render_name(names, node)).to eq('Doe, J., Smith, S., et al.')
331
331
  end
332
332
  end
333
333
  end
@@ -338,15 +338,15 @@ module CiteProc
338
338
 
339
339
  it 'supports family name formatting' do
340
340
  part[:name] = 'family'
341
- renderer.render_name(poe, node).should == 'Edgar Allen POE'
341
+ expect(renderer.render_name(poe, node)).to eq('Edgar Allen POE')
342
342
  end
343
343
 
344
344
  it 'family part includes non-demoted particles' do
345
345
  part[:name] = 'family'
346
346
 
347
- renderer.render_name(people(:la_fontaine), node).should == 'Jean de LA FONTAINE'
348
- renderer.render_name(people(:humboldt), node).should == 'Alexander von HUMBOLDT'
349
- renderer.render_name(people(:van_gogh), node).should == 'Vincent VAN GOGH'
347
+ expect(renderer.render_name(people(:la_fontaine), node)).to eq('Jean de LA FONTAINE')
348
+ expect(renderer.render_name(people(:humboldt), node)).to eq('Alexander von HUMBOLDT')
349
+ expect(renderer.render_name(people(:van_gogh), node)).to eq('Vincent VAN GOGH')
350
350
  end
351
351
 
352
352
  it 'family part affixes includes name suffix for non-inverted names' do
@@ -355,20 +355,20 @@ module CiteProc
355
355
  la_fontaine = people(:la_fontaine)
356
356
  la_fontaine[0].suffix = 'Jr.'
357
357
 
358
- renderer.render_name(la_fontaine, node).should == 'Jean de (LA FONTAINE Jr.)'
358
+ expect(renderer.render_name(la_fontaine, node)).to eq('Jean de (LA FONTAINE Jr.)')
359
359
  end
360
360
 
361
361
  it 'supports given name formatting' do
362
362
  part[:name] = 'given'
363
- renderer.render_name(poe, node).should == 'EDGAR ALLEN Poe'
363
+ expect(renderer.render_name(poe, node)).to eq('EDGAR ALLEN Poe')
364
364
  end
365
365
 
366
366
  it 'given part includes particles' do
367
367
  part[:name] = 'given'
368
368
 
369
- renderer.render_name(people(:la_fontaine), node).should == 'JEAN DE La Fontaine'
370
- renderer.render_name(people(:humboldt), node).should == 'ALEXANDER VON Humboldt'
371
- renderer.render_name(people(:van_gogh), node).should == 'VINCENT van Gogh'
369
+ expect(renderer.render_name(people(:la_fontaine), node)).to eq('JEAN DE La Fontaine')
370
+ expect(renderer.render_name(people(:humboldt), node)).to eq('ALEXANDER VON Humboldt')
371
+ expect(renderer.render_name(people(:van_gogh), node)).to eq('VINCENT van Gogh')
372
372
  end
373
373
 
374
374
  it 'given part affixes enclose demoted particles' do
@@ -376,19 +376,19 @@ module CiteProc
376
376
 
377
377
  la_fontaine = people(:la_fontaine)
378
378
 
379
- renderer.render_name(la_fontaine, node).should == '(JEAN DE) La Fontaine'
379
+ expect(renderer.render_name(la_fontaine, node)).to eq('(JEAN DE) La Fontaine')
380
380
 
381
381
  node.all_names_as_sort_order!
382
- renderer.render_name(la_fontaine, node).should == 'La Fontaine, (JEAN DE)'
382
+ expect(renderer.render_name(la_fontaine, node)).to eq('La Fontaine, (JEAN DE)')
383
383
 
384
384
  la_fontaine[0].always_demote_particle!
385
- renderer.render_name(la_fontaine, node).should == 'Fontaine, (JEAN DE La)'
385
+ expect(renderer.render_name(la_fontaine, node)).to eq('Fontaine, (JEAN DE La)')
386
386
  end
387
387
 
388
388
  it 'does not alter the passed-in name object' do
389
389
  part[:name] = 'family'
390
- renderer.render_name(poe, node).should == 'Edgar Allen POE'
391
- poe.to_s.should == 'Edgar Allen Poe'
390
+ expect(renderer.render_name(poe, node)).to eq('Edgar Allen POE')
391
+ expect(poe.to_s).to eq('Edgar Allen Poe')
392
392
  end
393
393
  end
394
394
  end