citeproc-ruby 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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