inversion 0.12.3 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -1
  3. data.tar.gz.sig +0 -0
  4. data/ChangeLog +305 -9
  5. data/Examples.rdoc +134 -0
  6. data/GettingStarted.rdoc +44 -0
  7. data/Guide.rdoc +47 -0
  8. data/History.rdoc +15 -0
  9. data/Manifest.txt +7 -2
  10. data/README.rdoc +9 -10
  11. data/Rakefile +23 -10
  12. data/Tags.rdoc +561 -0
  13. data/lib/inversion.rb +2 -2
  14. data/lib/inversion/renderstate.rb +46 -11
  15. data/lib/inversion/template.rb +85 -7
  16. data/lib/inversion/template/attrtag.rb +1 -1
  17. data/lib/inversion/template/begintag.rb +8 -8
  18. data/lib/inversion/template/fragmenttag.rb +60 -0
  19. data/lib/inversion/template/rescuetag.rb +1 -1
  20. data/spec/{lib/helpers.rb → helpers.rb} +7 -30
  21. data/spec/inversion/mixins_spec.rb +55 -65
  22. data/spec/inversion/monkeypatches_spec.rb +2 -12
  23. data/spec/inversion/parser_spec.rb +34 -44
  24. data/spec/inversion/renderstate_spec.rb +123 -69
  25. data/spec/inversion/sinatra_spec.rb +6 -19
  26. data/spec/inversion/template/attrtag_spec.rb +56 -76
  27. data/spec/inversion/template/begintag_spec.rb +24 -41
  28. data/spec/inversion/template/calltag_spec.rb +1 -18
  29. data/spec/inversion/template/codetag_spec.rb +6 -24
  30. data/spec/inversion/template/commenttag_spec.rb +9 -27
  31. data/spec/inversion/template/configtag_spec.rb +5 -16
  32. data/spec/inversion/template/containertag_spec.rb +4 -21
  33. data/spec/inversion/template/defaulttag_spec.rb +6 -23
  34. data/spec/inversion/template/elsetag_spec.rb +9 -26
  35. data/spec/inversion/template/elsiftag_spec.rb +7 -24
  36. data/spec/inversion/template/endtag_spec.rb +6 -23
  37. data/spec/inversion/template/escapetag_spec.rb +10 -25
  38. data/spec/inversion/template/fortag_spec.rb +20 -37
  39. data/spec/inversion/template/fragmenttag_spec.rb +40 -0
  40. data/spec/inversion/template/iftag_spec.rb +23 -40
  41. data/spec/inversion/template/importtag_spec.rb +8 -25
  42. data/spec/inversion/template/includetag_spec.rb +27 -42
  43. data/spec/inversion/template/node_spec.rb +6 -15
  44. data/spec/inversion/template/pptag_spec.rb +10 -23
  45. data/spec/inversion/template/publishtag_spec.rb +4 -21
  46. data/spec/inversion/template/rescuetag_spec.rb +12 -29
  47. data/spec/inversion/template/subscribetag_spec.rb +8 -25
  48. data/spec/inversion/template/tag_spec.rb +24 -37
  49. data/spec/inversion/template/textnode_spec.rb +8 -24
  50. data/spec/inversion/template/timedeltatag_spec.rb +31 -43
  51. data/spec/inversion/template/unlesstag_spec.rb +7 -24
  52. data/spec/inversion/template/uriencodetag_spec.rb +6 -23
  53. data/spec/inversion/template/yieldtag_spec.rb +3 -20
  54. data/spec/inversion/template_spec.rb +155 -108
  55. data/spec/inversion/tilt_spec.rb +7 -16
  56. data/spec/inversion_spec.rb +7 -22
  57. metadata +63 -40
  58. metadata.gz.sig +0 -0
  59. data/spec/lib/constants.rb +0 -9
@@ -1,17 +1,8 @@
1
1
  #!/usr/bin/env rspec -cfd -b
2
2
  # vim: set noet nosta sw=4 ts=4 :
3
3
 
4
- BEGIN {
5
- require 'pathname'
6
- basedir = Pathname( __FILE__ ).dirname.parent.parent.parent
7
- libdir = basedir + 'lib'
4
+ require_relative '../../helpers'
8
5
 
9
- $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
10
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
- }
12
-
13
- require 'rspec'
14
- require 'spec/lib/helpers'
15
6
  require 'inversion/template/fortag'
16
7
  require 'inversion/template/textnode'
17
8
  require 'inversion/template/endtag'
@@ -19,22 +10,14 @@ require 'inversion/renderstate'
19
10
 
20
11
  describe Inversion::Template::EndTag do
21
12
 
22
- before( :all ) do
23
- setup_logging( :fatal )
24
- end
25
-
26
13
  before( :each ) do
27
14
  @tag = Inversion::Template::EndTag.new
28
15
  end
29
16
 
30
- after( :all ) do
31
- reset_logging()
32
- end
33
-
34
17
 
35
18
  it "doesn't render as anything" do
36
19
  renderstate = Inversion::RenderState.new
37
- @tag.render( renderstate ).should be_nil()
20
+ expect( @tag.render(renderstate) ).to be_nil()
38
21
  end
39
22
 
40
23
  it "can render itself as a comment body that outputs what it closes" do
@@ -42,14 +25,14 @@ describe Inversion::Template::EndTag do
42
25
  template = Inversion::Template.
43
26
  new( "<?for foo in bar ?>Chunkers<?end ?>", :debugging_comments => true )
44
27
  template.bar = [ :an_item ]
45
- template.render.should =~ /<!-- End of For: { foo IN template.bar } -->/
28
+ expect( template.render ).to match( /<!-- End of For: { foo IN template.bar } -->/ )
46
29
  end
47
30
 
48
31
  it "closes the parse state's currently-open container node before it's appended" do
49
32
  container = double( "container node", :tagname => 'for', :location => nil )
50
- parserstate = mock( "parser state" )
33
+ parserstate = double( "parser state" )
51
34
 
52
- parserstate.should_receive( :pop ).and_return( container )
35
+ expect( parserstate ).to receive( :pop ).and_return( container )
53
36
 
54
37
  @tag.before_appending( parserstate )
55
38
  end
@@ -67,7 +50,7 @@ describe Inversion::Template::EndTag do
67
50
 
68
51
  expect {
69
52
  @tag.before_appending( state )
70
- }.to raise_exception( Inversion::ParseError, /unbalanced/i )
53
+ }.to raise_error( Inversion::ParseError, /unbalanced/i )
71
54
  end
72
55
 
73
56
  end
@@ -1,59 +1,44 @@
1
1
  #!/usr/bin/env rspec -cfd -b
2
2
  # vim: set noet nosta sw=4 ts=4 :
3
3
 
4
- BEGIN {
5
- require 'pathname'
6
- basedir = Pathname( __FILE__ ).dirname.parent.parent.parent
7
- libdir = basedir + 'lib'
4
+ require_relative '../../helpers'
8
5
 
9
- $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
10
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
- }
12
-
13
- require 'rspec'
14
- require 'spec/lib/helpers'
15
6
  require 'inversion/template/escapetag'
16
7
 
17
8
  describe Inversion::Template::EscapeTag do
18
9
 
19
- before( :all ) do
20
- setup_logging( :fatal )
21
- end
22
-
23
- after( :all ) do
24
- reset_logging()
25
- end
26
-
27
10
  before( :each ) do
28
- @attribute_object = mock( "template attribute" )
11
+ @attribute_object = double( "template attribute" )
29
12
  end
30
13
 
31
14
 
32
15
  it "defaults to escaping as HTML" do
33
16
  template = Inversion::Template.new( 'this is <?escape foo.bar ?>' )
34
17
  template.foo = @attribute_object
35
- @attribute_object.should_receive( :bar ).with( no_args() ).
18
+ expect( @attribute_object ).to receive( :bar ).with( no_args() ).
36
19
  and_return( "<the good, the bad, & the ugly>" )
37
20
 
38
- template.render.should == "this is &lt;the good, the bad, &amp; the ugly&gt;"
21
+ expect( template.render ).to eq( "this is &lt;the good, the bad, &amp; the ugly&gt;" )
39
22
  end
40
23
 
41
24
  it "raises an Inversion::OptionsError if the config specifies an unsupported format" do
42
25
  template = Inversion::Template.new( 'this is <?escape foo.bar ?>',
43
26
  :escape_format => :clowns, :on_render_error => :propagate )
44
27
  template.foo = @attribute_object
45
- @attribute_object.should_receive( :bar ).with( no_args() ).
28
+ expect( @attribute_object ).to receive( :bar ).with( no_args() ).
46
29
  and_return( "<the good, the bad, & the ugly>" )
47
30
 
48
- expect { template.render }.to raise_error Inversion::OptionsError, /no such escape format/i
31
+ expect {
32
+ template.render
33
+ }.to raise_error( Inversion::OptionsError, /no such escape format/i )
49
34
  end
50
35
 
51
36
  it "escapes as HTML if the format is set to :html" do
52
37
  template = Inversion::Template.new( 'this is <?escape foo.bar ?>', :escape_format => :html )
53
38
  template.foo = @attribute_object
54
- @attribute_object.should_receive( :bar ).with( no_args() ).
39
+ expect( @attribute_object ).to receive( :bar ).with( no_args() ).
55
40
  and_return( "<the good, the bad, & the ugly>" )
56
41
 
57
- template.render.should == "this is &lt;the good, the bad, &amp; the ugly&gt;"
42
+ expect( template.render ).to eq( "this is &lt;the good, the bad, &amp; the ugly&gt;" )
58
43
  end
59
44
  end
@@ -1,18 +1,9 @@
1
1
  #!/usr/bin/env rspec -cfd -b
2
2
  # vim: set noet nosta sw=4 ts=4 :
3
3
 
4
- BEGIN {
5
- require 'pathname'
6
- basedir = Pathname( __FILE__ ).dirname.parent.parent.parent
7
- libdir = basedir + 'lib'
4
+ require_relative '../../helpers'
8
5
 
9
- $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
10
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
- }
12
-
13
- require 'rspec'
14
6
  require 'ostruct'
15
- require 'spec/lib/helpers'
16
7
  require 'inversion/template/fortag'
17
8
  require 'inversion/template/attrtag'
18
9
  require 'inversion/template/textnode'
@@ -20,25 +11,17 @@ require 'inversion/renderstate'
20
11
 
21
12
  describe Inversion::Template::ForTag do
22
13
 
23
- before( :all ) do
24
- setup_logging( :fatal )
25
- end
26
-
27
- after( :all ) do
28
- reset_logging()
29
- end
30
-
31
14
 
32
15
  it "knows which identifiers should be added to the template" do
33
16
  tag = Inversion::Template::ForTag.new( 'foo in bar' )
34
- tag.identifiers.should == [ :bar ]
17
+ expect( tag.identifiers ).to eq( [ :bar ] )
35
18
  end
36
19
 
37
20
  it "can iterate over single items of a collection attribute" do
38
21
  tag = Inversion::Template::ForTag.new( 'foo in bar' )
39
22
 
40
- tag.block_args.should == [ :foo ]
41
- tag.enumerator.should == 'bar'
23
+ expect( tag.block_args ).to eq( [ :foo ] )
24
+ expect( tag.enumerator ).to eq( 'bar' )
42
25
  end
43
26
 
44
27
  it "should render as nothing if the corresponding attribute in the template is unset" do
@@ -52,7 +35,7 @@ describe Inversion::Template::ForTag do
52
35
  tag << Inversion::Template::AttrTag.new( 'foo' )
53
36
  tag << Inversion::Template::TextNode.new( ']' )
54
37
 
55
- tag.render( render_state ).should be_nil()
38
+ expect( tag.render( render_state ) ).to be_nil()
56
39
  end
57
40
 
58
41
  it "renders each of its subnodes for each iteration, replacing its " +
@@ -68,7 +51,7 @@ describe Inversion::Template::ForTag do
68
51
  tag << Inversion::Template::TextNode.new( ']' )
69
52
 
70
53
  tag.render( render_state )
71
- render_state.to_s.should == "[monkey][goat]"
54
+ expect( render_state.to_s ).to eq( "[monkey][goat]" )
72
55
  end
73
56
 
74
57
  it "supports nested iterators" do
@@ -88,7 +71,7 @@ describe Inversion::Template::ForTag do
88
71
  outer << inner
89
72
 
90
73
  outer.render( render_state )
91
- render_state.to_s.should == "[x, o][x, x][o, o][o, x]"
74
+ expect( render_state.to_s ).to eq( "[x, o][x, x][o, o][o, x]" )
92
75
  end
93
76
 
94
77
  it "supports iterating over a range" do
@@ -101,13 +84,13 @@ describe Inversion::Template::ForTag do
101
84
 
102
85
  render_state = Inversion::RenderState.new( :rng => 0..10 )
103
86
  tag.render( render_state )
104
- render_state.to_s.should == "0 1 2 3 4 5 6 7 8 9 10 "
87
+ expect( render_state.to_s ).to eq( "0 1 2 3 4 5 6 7 8 9 10 " )
105
88
  end
106
89
 
107
90
  it "raises a ParseError if a keyword other than 'in' is used" do
108
91
  expect {
109
92
  Inversion::Template::ForTag.new( 'foo begin bar' )
110
- }.to raise_exception( Inversion::ParseError, /invalid/i )
93
+ }.to raise_error( Inversion::ParseError, /invalid/i )
111
94
  end
112
95
 
113
96
  context "multidimensional collections" do
@@ -115,16 +98,16 @@ describe Inversion::Template::ForTag do
115
98
  it "can be expanded into multiple block arguments" do
116
99
  tag = Inversion::Template::ForTag.new( 'splip, splorp in splap' )
117
100
 
118
- tag.block_args.should == [ :splip, :splorp ]
119
- tag.enumerator.should == 'splap'
101
+ expect( tag.block_args ).to eq( [ :splip, :splorp ] )
102
+ expect( tag.enumerator ).to eq( 'splap' )
120
103
  end
121
104
 
122
105
 
123
106
  it "can be expanded into multiple block arguments (sans spaces)" do
124
107
  tag = Inversion::Template::ForTag.new( 'splip,splorp,sploop in splap' )
125
108
 
126
- tag.block_args.should == [ :splip, :splorp, :sploop ]
127
- tag.enumerator.should == 'splap'
109
+ expect( tag.block_args ).to eq( [ :splip, :splorp, :sploop ] )
110
+ expect( tag.enumerator ).to eq( 'splap' )
128
111
  end
129
112
 
130
113
  it "can be expanded into multiple block arguments from hash pairs" do
@@ -137,13 +120,13 @@ describe Inversion::Template::ForTag do
137
120
  tag << Inversion::Template::AttrTag.new( 'value' )
138
121
  tag << Inversion::Template::TextNode.new( ']' )
139
122
 
140
- tag.block_args.should == [ :key, :value ]
141
- tag.enumerator.should == 'splap'
123
+ expect( tag.block_args ).to eq( [ :key, :value ] )
124
+ expect( tag.enumerator ).to eq( 'splap' )
142
125
 
143
126
  render_state = Inversion::RenderState.new( :splap => {'one' => 'uno', 'two' => 'dos'} )
144
127
  tag.render( render_state )
145
128
 
146
- render_state.to_s.should == '[one translates to uno][two translates to dos]'
129
+ expect( render_state.to_s ).to eq( '[one translates to uno][two translates to dos]' )
147
130
  end
148
131
 
149
132
  it "can be expanded into multiple block arguments with complex values" do
@@ -166,8 +149,8 @@ describe Inversion::Template::ForTag do
166
149
  render_state = Inversion::RenderState.new( :method_list => method_list )
167
150
  tree.first.render( render_state )
168
151
 
169
- render_state.to_s.should =~ /foo \(3\) => foo\s+AKA: foom, foom_detail/
170
- render_state.to_s.should =~ /ch \(1\) => ch/
152
+ expect( render_state.to_s ).to match( /foo \(3\) => foo\s+AKA: foom, foom_detail/ )
153
+ expect( render_state.to_s ).to match( /ch \(1\) => ch/ )
171
154
  end
172
155
 
173
156
  it "preserves an array of subhashes" do
@@ -185,7 +168,7 @@ describe Inversion::Template::ForTag do
185
168
  render_state = Inversion::RenderState.new( :the_hash => the_hash )
186
169
  tree.first.render( render_state )
187
170
 
188
- render_state.to_s.should =~ /Subhash is a Hash/i
171
+ expect( render_state.to_s ).to match( /Subhash is a Hash/i )
189
172
  end
190
173
 
191
174
  end
@@ -220,7 +203,7 @@ describe Inversion::Template::ForTag do
220
203
  tmpl.frame = frame
221
204
  output = tmpl.render
222
205
 
223
- output.gsub( /\t+/, '' ).should == (<<-END_OUTPUT).gsub( /\t+/, '' )
206
+ expect( output.gsub( /\t+/, '' ) ).to eq( (<<-END_OUTPUT).gsub( /\t+/, '' ) )
224
207
  <section class="hexdump">
225
208
  <span class="row">0x00000000:
226
209
  &nbsp;<code>0x89</code>
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env rspec -cfd -b
2
+ # vim: set noet nosta sw=4 ts=4 :
3
+
4
+ require_relative '../../helpers'
5
+
6
+ require 'inversion/template/fragmenttag'
7
+ require 'inversion/template/attrtag'
8
+ require 'inversion/template/textnode'
9
+ require 'inversion/renderstate'
10
+
11
+ describe Inversion::Template::FragmentTag do
12
+
13
+ it "raises a parse error if the body isn't a simple attribute" do
14
+ expect {
15
+ Inversion::Template::FragmentTag.new( 'something-else' )
16
+ }.to raise_error( Inversion::ParseError, /malformed key/i )
17
+ end
18
+
19
+
20
+ it "doesn't render its contents in the template it's declared in" do
21
+ expect(
22
+ Inversion::Template.new( "<?fragment foo ?>Fatty BoomBoom<?end ?>" ).render
23
+ ).to eq( '' )
24
+ end
25
+
26
+
27
+ it "sets the attribute on the template object when rendered" do
28
+ tmpl = Inversion::Template.new(
29
+ '<?fragment subject ?>Order #<?attr order_number ?><?end?>-- <?attr subject ?> --'
30
+ )
31
+
32
+ tmpl.order_number = '2121bf8c4'
33
+ output = tmpl.render
34
+
35
+ expect( output ).to eq( "-- Order #2121bf8c4 --" )
36
+ expect( tmpl.fragments[:subject] ).to eq( "Order #2121bf8c4" )
37
+ end
38
+
39
+ end
40
+
@@ -1,31 +1,14 @@
1
1
  #!/usr/bin/env rspec -cfd -b
2
2
  # vim: set noet nosta sw=4 ts=4 :
3
3
 
4
- BEGIN {
5
- require 'pathname'
6
- basedir = Pathname( __FILE__ ).dirname.parent.parent.parent
7
- libdir = basedir + 'lib'
4
+ require_relative '../../helpers'
8
5
 
9
- $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
10
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
- }
12
-
13
- require 'rspec'
14
- require 'spec/lib/helpers'
15
6
  require 'inversion/template/iftag'
16
7
  require 'inversion/template/textnode'
17
8
  require 'inversion/renderstate'
18
9
 
19
10
  describe Inversion::Template::IfTag do
20
11
 
21
- before( :all ) do
22
- setup_logging( :fatal )
23
- end
24
-
25
- after( :all ) do
26
- reset_logging()
27
- end
28
-
29
12
 
30
13
  it "renders its contents if its attribute is true" do
31
14
  tag = Inversion::Template::IfTag.new( 'attribute' )
@@ -33,7 +16,7 @@ describe Inversion::Template::IfTag do
33
16
 
34
17
  renderstate = Inversion::RenderState.new( :attribute => true )
35
18
  tag.render( renderstate )
36
- renderstate.to_s.should == 'the body'
19
+ expect( renderstate.to_s ).to eq( 'the body' )
37
20
  end
38
21
 
39
22
 
@@ -43,7 +26,7 @@ describe Inversion::Template::IfTag do
43
26
 
44
27
  renderstate = Inversion::RenderState.new( :attribute => {:foo => 1} )
45
28
  tag.render( renderstate )
46
- renderstate.to_s.should == 'the body'
29
+ expect( renderstate.to_s ).to eq( 'the body' )
47
30
  end
48
31
 
49
32
  it "doesn't render its contents if its attribute is false" do
@@ -52,7 +35,7 @@ describe Inversion::Template::IfTag do
52
35
 
53
36
  renderstate = Inversion::RenderState.new( :attribute => nil )
54
37
  tag.render( renderstate )
55
- renderstate.to_s.should == ''
38
+ expect( renderstate.to_s ).to eq( '' )
56
39
  end
57
40
 
58
41
  it "doesn't render its contents if its methodchain is false" do
@@ -61,7 +44,7 @@ describe Inversion::Template::IfTag do
61
44
 
62
45
  renderstate = Inversion::RenderState.new( :attribute => {:bar => 1} )
63
46
  tag.render( renderstate )
64
- renderstate.to_s.should == ''
47
+ expect( renderstate.to_s ).to eq( '' )
65
48
  end
66
49
 
67
50
  it "works inside an iterator (ticket #3)" do
@@ -73,8 +56,8 @@ describe Inversion::Template::IfTag do
73
56
 
74
57
  template.items = [ true, false ]
75
58
 
76
- template.render.should include( "Item: Yep." )
77
- template.render.should include( "Item: Nope." )
59
+ expect( template.render ).to include( "Item: Yep." )
60
+ expect( template.render ).to include( "Item: Nope." )
78
61
  end
79
62
 
80
63
 
@@ -91,13 +74,13 @@ describe Inversion::Template::IfTag do
91
74
  it "only renders the first half of the contents if its attribute is true" do
92
75
  renderstate = Inversion::RenderState.new( :attribute => true )
93
76
  @tag.render( renderstate )
94
- renderstate.to_s.should == 'the body before else'
77
+ expect( renderstate.to_s ).to eq( 'the body before else' )
95
78
  end
96
79
 
97
80
  it "only renders the second half of the contents if its attribute is true" do
98
81
  renderstate = Inversion::RenderState.new( :attribute => false )
99
82
  @tag.render( renderstate )
100
- renderstate.to_s.should == 'the body after else'
83
+ expect( renderstate.to_s ).to eq( 'the body after else' )
101
84
  end
102
85
 
103
86
  end
@@ -116,21 +99,21 @@ describe Inversion::Template::IfTag do
116
99
  it "only renders the first third of the contents if its attribute is true" do
117
100
  renderstate = Inversion::RenderState.new( :attribute => true )
118
101
  @tag.render( renderstate )
119
- renderstate.to_s.should == 'the body before elsif'
102
+ expect( renderstate.to_s ).to eq( 'the body before elsif' )
120
103
  end
121
104
 
122
105
  it "only renders the second third of the contents if the attribute is false and the " +
123
106
  "elsif's attribute is true" do
124
107
  renderstate = Inversion::RenderState.new( :attribute => false, :elsifattribute => true )
125
108
  @tag.render( renderstate )
126
- renderstate.to_s.should == 'the body after elsif'
109
+ expect( renderstate.to_s ).to eq( 'the body after elsif' )
127
110
  end
128
111
 
129
112
  it "only renders the last third of the contents if both the attribute and the elsif's " +
130
113
  "attribute are false" do
131
114
  renderstate = Inversion::RenderState.new( :attribute => false, :elsifattribute => false )
132
115
  @tag.render( renderstate )
133
- renderstate.to_s.should == 'the body after else'
116
+ expect( renderstate.to_s ).to eq( 'the body after else' )
134
117
  end
135
118
 
136
119
  end
@@ -148,20 +131,20 @@ describe Inversion::Template::IfTag do
148
131
  it "only renders the first half of the contents if its attribute is true" do
149
132
  renderstate = Inversion::RenderState.new( :attribute => true )
150
133
  @tag.render( renderstate )
151
- renderstate.to_s.should == 'the body before elsif'
134
+ expect( renderstate.to_s ).to eq( 'the body before elsif' )
152
135
  end
153
136
 
154
137
  it "only renders the second half of the contents if the attribute is false and the " +
155
138
  "elsif's attribute is true" do
156
139
  renderstate = Inversion::RenderState.new( :attribute => false, :elsifattribute => true )
157
140
  @tag.render( renderstate )
158
- renderstate.to_s.should == 'the body after elsif'
141
+ expect( renderstate.to_s ).to eq( 'the body after elsif' )
159
142
  end
160
143
 
161
144
  it "doesn't render anything if both the attribute and the elsif's attribute are false" do
162
145
  renderstate = Inversion::RenderState.new( :attribute => false, :elsifattribute => false )
163
146
  @tag.render( renderstate )
164
- renderstate.to_s.should == ''
147
+ expect( renderstate.to_s ).to eq( '' )
165
148
  end
166
149
 
167
150
  end
@@ -181,27 +164,27 @@ describe Inversion::Template::IfTag do
181
164
  it "only renders the first third of the contents if its attribute is true" do
182
165
  renderstate = Inversion::RenderState.new( :attribute => true )
183
166
  @tag.render( renderstate )
184
- renderstate.to_s.should == 'the body before elsif'
167
+ expect( renderstate.to_s ).to eq( 'the body before elsif' )
185
168
  end
186
169
 
187
170
  it "only renders the second third of the contents if the attribute is false and the " +
188
171
  "first elsif's attribute is true" do
189
172
  renderstate = Inversion::RenderState.new( :elsifattribute => true )
190
173
  @tag.render( renderstate )
191
- renderstate.to_s.should == 'the body after elsif1'
174
+ expect( renderstate.to_s ).to eq( 'the body after elsif1' )
192
175
  end
193
176
 
194
177
  it "only renders the last third of the contents if both the attribute and the first elsif's " +
195
178
  "attribute are false, but the second elsif's attribute is true" do
196
179
  renderstate = Inversion::RenderState.new( :elsifattribute2 => true )
197
180
  @tag.render( renderstate )
198
- renderstate.to_s.should == 'the body after elsif2'
181
+ expect( renderstate.to_s ).to eq( 'the body after elsif2' )
199
182
  end
200
183
 
201
184
  it "doesn't render anything if all three attributes are false" do
202
185
  renderstate = Inversion::RenderState.new
203
186
  @tag.render( renderstate )
204
- renderstate.to_s.should == ''
187
+ expect( renderstate.to_s ).to eq( '' )
205
188
  end
206
189
 
207
190
  end
@@ -223,27 +206,27 @@ describe Inversion::Template::IfTag do
223
206
  it "only renders the first quarter of the contents if its attribute is true" do
224
207
  renderstate = Inversion::RenderState.new( :attribute => true )
225
208
  @tag.render( renderstate )
226
- renderstate.to_s.should == 'the body before elsif'
209
+ expect( renderstate.to_s ).to eq( 'the body before elsif' )
227
210
  end
228
211
 
229
212
  it "only renders the second quarter of the contents if the attribute is false and the " +
230
213
  "first elsif's attribute is true" do
231
214
  renderstate = Inversion::RenderState.new( :elsifattribute => true )
232
215
  @tag.render( renderstate )
233
- renderstate.to_s.should == 'the body after elsif1'
216
+ expect( renderstate.to_s ).to eq( 'the body after elsif1' )
234
217
  end
235
218
 
236
219
  it "only renders the third quarter of the contents if both the attribute and the first elsif's " +
237
220
  "attribute are false, but the second elsif's attribute is true" do
238
221
  renderstate = Inversion::RenderState.new( :elsifattribute2 => true )
239
222
  @tag.render( renderstate )
240
- renderstate.to_s.should == 'the body after elsif2'
223
+ expect( renderstate.to_s ).to eq( 'the body after elsif2' )
241
224
  end
242
225
 
243
226
  it "renders the last quarter of the contents if all three attributes are false" do
244
227
  renderstate = Inversion::RenderState.new
245
228
  @tag.render( renderstate )
246
- renderstate.to_s.should == 'the body after else'
229
+ expect( renderstate.to_s ).to eq( 'the body after else' )
247
230
  end
248
231
 
249
232
  end