diffed 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Diffed
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
@@ -13,10 +13,12 @@ module Diffed
13
13
  private
14
14
  def format_styled_row(bg_color, text_color, row, opts = {})
15
15
  row_styles = []
16
+ row_styles << "border-top: 3px solid #{opts[:border_color]}" if opts[:highlight]
17
+ row_styles << "border-bottom: 3px solid #{opts[:border_color]}" if opts[:highlight]
16
18
  row_styles << "background-color: #{bg_color}" unless bg_color.nil?
17
19
  row_styles << "font-weight: bold" if opts[:highlight]
18
20
 
19
- row_style_attr = row_styles.empty? ? "" : %Q{ style="#{row_styles.join('; ')}" }
21
+ row_style_attr = row_styles.empty? ? "" : %Q{ style="#{row_styles.join('; ')}"}
20
22
  text_color = text_color
21
23
 
22
24
  border = '1px solid #CCC'
@@ -36,7 +38,7 @@ EOS
36
38
 
37
39
  def make_table_tag(inline_styles)
38
40
  if inline_styles
39
- table_attributes = %Q{cellpadding="5" style="border-collapse: collapse; border: 1px solid \#CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888"}
41
+ table_attributes = %Q{cellpadding="5" style="border-collapse: collapse; border: 1px solid \#CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888; line-height: 80%"}
40
42
  else
41
43
  table_attributes = %Q{class="coloured-diff"}
42
44
  end
@@ -31,21 +31,24 @@ module Diffed
31
31
  row = OutputRow.new(:code_line => self)
32
32
 
33
33
  if use_inline_styles
34
- format_styled_row code_line_style, '#000', row, :highlight => highlight
34
+ format_styled_row code_line_color(highlight), '#000', row, :highlight => highlight, :border_color => border_color
35
35
  else
36
36
  format_classed_row type.to_s, row, :highlight => highlight
37
37
  end
38
38
  end
39
39
 
40
- def code_line_style
41
- case type
42
- when :left
43
- '#FDD'
44
- when :right
45
- '#DFD'
46
- when :both
47
- nil
40
+ def code_line_color(highlight)
41
+ if highlight && type == :both
42
+ '#FFFBCC'
43
+ else
44
+ colors = {left: '#FDD', right: '#DFD', both: nil}
45
+ colors[type]
48
46
  end
49
47
  end
48
+
49
+ def border_color
50
+ border_colors = {left: '#F55', right: '#5F5', both: '#999'}
51
+ border_colors[type]
52
+ end
50
53
  end
51
54
  end
@@ -32,7 +32,7 @@ describe "Diffed::Diff.as_html_table" do
32
32
  it "renders an html table with two highlighted rows, using inline styles" do
33
33
  diff = Diffed.from_text(File.read("testdata/diff2.diff"))
34
34
  section1 = diff.sections[0]
35
- output = section1.as_html_table(true, [9,11])
35
+ output = section1.as_html_table(true, [5, 9,11])
36
36
  # File.open("wtf5.html", "w") {|f| f.write(output)}
37
37
  output.strip.should eq File.read("testdata/diff2.styled.html").strip
38
38
  end
@@ -40,7 +40,7 @@ describe "Diffed::Diff.as_html_table" do
40
40
  it "renders an html table with two highlighted rows, using CSS classes" do
41
41
  diff = Diffed.from_text(File.read("testdata/diff2.diff"))
42
42
  section1 = diff.sections[0]
43
- output = section1.as_html_table(false, [9, 11])
43
+ output = section1.as_html_table(false, [5, 9, 11])
44
44
  # File.open("wtf6.html", "w") {|f| f.write(output)}
45
45
  output.strip.should eq File.read("testdata/diff2.classed.html").strip
46
46
  end
@@ -1,5 +1,5 @@
1
- <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888">
2
- <tr style="background-color: #F0F0FF" >
1
+ <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888; line-height: 80%">
2
+ <tr style="background-color: #F0F0FF">
3
3
  <td style="border-left: 1px solid #CCC">...</td>
4
4
  <td style="border-left: 1px solid #CCC">...</td>
5
5
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -1,22 +1,22 @@</pre></td>
@@ -14,12 +14,12 @@
14
14
  <td style="border-left: 1px solid #CCC">2</td>
15
15
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> # Represent a single piece of a diff.</pre></td>
16
16
  </tr>
17
- <tr style="background-color: #FDD" >
17
+ <tr style="background-color: #FDD">
18
18
  <td style="border-left: 1px solid #CCC">3</td>
19
19
  <td style="border-left: 1px solid #CCC">.</td>
20
20
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>-# </pre></td>
21
21
  </tr>
22
- <tr style="background-color: #DFD" >
22
+ <tr style="background-color: #DFD">
23
23
  <td style="border-left: 1px solid #CCC">.</td>
24
24
  <td style="border-left: 1px solid #CCC">3</td>
25
25
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+#</pre></td>
@@ -34,12 +34,12 @@
34
34
  <td style="border-left: 1px solid #CCC">5</td>
35
35
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> attr_reader :diff, :meta_info, :input, :lines</pre></td>
36
36
  </tr>
37
- <tr style="background-color: #FDD" >
37
+ <tr style="background-color: #FDD">
38
38
  <td style="border-left: 1px solid #CCC">6</td>
39
39
  <td style="border-left: 1px solid #CCC">.</td>
40
40
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- </pre></td>
41
41
  </tr>
42
- <tr style="background-color: #DFD" >
42
+ <tr style="background-color: #DFD">
43
43
  <td style="border-left: 1px solid #CCC">.</td>
44
44
  <td style="border-left: 1px solid #CCC">6</td>
45
45
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+</pre></td>
@@ -69,12 +69,12 @@
69
69
  <td style="border-left: 1px solid #CCC">11</td>
70
70
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> end</pre></td>
71
71
  </tr>
72
- <tr style="background-color: #FDD" >
72
+ <tr style="background-color: #FDD">
73
73
  <td style="border-left: 1px solid #CCC">12</td>
74
74
  <td style="border-left: 1px solid #CCC">.</td>
75
75
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- </pre></td>
76
76
  </tr>
77
- <tr style="background-color: #DFD" >
77
+ <tr style="background-color: #DFD">
78
78
  <td style="border-left: 1px solid #CCC">.</td>
79
79
  <td style="border-left: 1px solid #CCC">12</td>
80
80
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+</pre></td>
@@ -109,12 +109,12 @@
109
109
  <td style="border-left: 1px solid #CCC">18</td>
110
110
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> end</pre></td>
111
111
  </tr>
112
- <tr style="background-color: #FDD" >
112
+ <tr style="background-color: #FDD">
113
113
  <td style="border-left: 1px solid #CCC">19</td>
114
114
  <td style="border-left: 1px solid #CCC">.</td>
115
115
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- </pre></td>
116
116
  </tr>
117
- <tr style="background-color: #DFD" >
117
+ <tr style="background-color: #DFD">
118
118
  <td style="border-left: 1px solid #CCC">.</td>
119
119
  <td style="border-left: 1px solid #CCC">19</td>
120
120
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+</pre></td>
@@ -134,7 +134,7 @@
134
134
  <td style="border-left: 1px solid #CCC">22</td>
135
135
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> #</pre></td>
136
136
  </tr>
137
- <tr style="background-color: #F0F0FF" >
137
+ <tr style="background-color: #F0F0FF">
138
138
  <td style="border-left: 1px solid #CCC">...</td>
139
139
  <td style="border-left: 1px solid #CCC">...</td>
140
140
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -25,7 +25,7 @@ class PrettyDiff::Chunk #:nodoc:</pre></td>
@@ -154,12 +154,12 @@
154
154
  <td style="border-left: 1px solid #CCC">27</td>
155
155
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> end</pre></td>
156
156
  </tr>
157
- <tr style="background-color: #FDD" >
157
+ <tr style="background-color: #FDD">
158
158
  <td style="border-left: 1px solid #CCC">28</td>
159
159
  <td style="border-left: 1px solid #CCC">.</td>
160
160
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- </pre></td>
161
161
  </tr>
162
- <tr style="background-color: #DFD" >
162
+ <tr style="background-color: #DFD">
163
163
  <td style="border-left: 1px solid #CCC">.</td>
164
164
  <td style="border-left: 1px solid #CCC">28</td>
165
165
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+</pre></td>
@@ -179,7 +179,7 @@
179
179
  <td style="border-left: 1px solid #CCC">31</td>
180
180
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> def generator</pre></td>
181
181
  </tr>
182
- <tr style="background-color: #F0F0FF" >
182
+ <tr style="background-color: #F0F0FF">
183
183
  <td style="border-left: 1px solid #CCC">...</td>
184
184
  <td style="border-left: 1px solid #CCC">...</td>
185
185
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -35,9 +35,10 @@ private</pre></td>
@@ -199,37 +199,37 @@
199
199
  <td style="border-left: 1px solid #CCC">37</td>
200
200
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> def find_lines!</pre></td>
201
201
  </tr>
202
- <tr style="background-color: #FDD" >
202
+ <tr style="background-color: #FDD">
203
203
  <td style="border-left: 1px solid #CCC">38</td>
204
204
  <td style="border-left: 1px solid #CCC">.</td>
205
205
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- returning(@lines = []) do</pre></td>
206
206
  </tr>
207
- <tr style="background-color: #FDD" >
207
+ <tr style="background-color: #FDD">
208
208
  <td style="border-left: 1px solid #CCC">39</td>
209
209
  <td style="border-left: 1px solid #CCC">.</td>
210
210
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- input.split(/\r?\n/).each_with_index do |line_str, idx|</pre></td>
211
211
  </tr>
212
- <tr style="background-color: #FDD" >
212
+ <tr style="background-color: #FDD">
213
213
  <td style="border-left: 1px solid #CCC">40</td>
214
214
  <td style="border-left: 1px solid #CCC">.</td>
215
215
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- line = PrettyDiff::Line.new(diff, line_str, :number =&gt; idx)</pre></td>
216
216
  </tr>
217
- <tr style="background-color: #DFD" >
217
+ <tr style="background-color: #DFD">
218
218
  <td style="border-left: 1px solid #CCC">.</td>
219
219
  <td style="border-left: 1px solid #CCC">38</td>
220
220
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @lines = []</pre></td>
221
221
  </tr>
222
- <tr style="background-color: #DFD" >
222
+ <tr style="background-color: #DFD">
223
223
  <td style="border-left: 1px solid #CCC">.</td>
224
224
  <td style="border-left: 1px solid #CCC">39</td>
225
225
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @lines.tap do</pre></td>
226
226
  </tr>
227
- <tr style="background-color: #DFD" >
227
+ <tr style="background-color: #DFD">
228
228
  <td style="border-left: 1px solid #CCC">.</td>
229
229
  <td style="border-left: 1px solid #CCC">40</td>
230
230
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ input.split(/\r?\n/).each do |line_str|</pre></td>
231
231
  </tr>
232
- <tr style="background-color: #DFD" >
232
+ <tr style="background-color: #DFD">
233
233
  <td style="border-left: 1px solid #CCC">.</td>
234
234
  <td style="border-left: 1px solid #CCC">41</td>
235
235
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ line = PrettyDiff::Line.new(diff, line_str)</pre></td>
@@ -249,7 +249,7 @@
249
249
  <td style="border-left: 1px solid #CCC">44</td>
250
250
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> line_numbers.act_on_line(line)</pre></td>
251
251
  </tr>
252
- <tr style="background-color: #F0F0FF" >
252
+ <tr style="background-color: #F0F0FF">
253
253
  <td style="border-left: 1px solid #CCC">...</td>
254
254
  <td style="border-left: 1px solid #CCC">...</td>
255
255
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -45,4 +46,4 @@ private</pre></td>
@@ -269,12 +269,12 @@
269
269
  <td style="border-left: 1px solid #CCC">48</td>
270
270
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
271
271
  </tr>
272
- <tr style="background-color: #FDD" >
272
+ <tr style="background-color: #FDD">
273
273
  <td style="border-left: 1px solid #CCC">48</td>
274
274
  <td style="border-left: 1px solid #CCC">.</td>
275
275
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>-end</pre></td>
276
276
  </tr>
277
- <tr style="background-color: #DFD" >
277
+ <tr style="background-color: #DFD">
278
278
  <td style="border-left: 1px solid #CCC">.</td>
279
279
  <td style="border-left: 1px solid #CCC">49</td>
280
280
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+end</pre></td>
@@ -4,7 +4,7 @@
4
4
  <tr class="both"><td>36</td><td>36</td><td><pre> # Return an array of Line objects.</pre></td></tr>
5
5
  <tr class="both"><td>37</td><td>37</td><td><pre> def find_lines!</pre></td></tr>
6
6
  <tr class="left"><td>38</td><td>.</td><td><pre>- returning(@lines = []) do</pre></td></tr>
7
- <tr class="left"><td>39</td><td>.</td><td><pre>- input.split(/\r?\n/).each_with_index do |line_str, idx|</pre></td></tr>
7
+ <tr class="left highlight"><td>39</td><td>.</td><td><pre>- input.split(/\r?\n/).each_with_index do |line_str, idx|</pre></td></tr>
8
8
  <tr class="left"><td>40</td><td>.</td><td><pre>- line = PrettyDiff::Line.new(diff, line_str, :number =&gt; idx)</pre></td></tr>
9
9
  <tr class="right"><td>.</td><td>38</td><td><pre>+ @lines = []</pre></td></tr>
10
10
  <tr class="right"><td>.</td><td>39</td><td><pre>+ @lines.tap do</pre></td></tr>
@@ -1,5 +1,5 @@
1
- <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888">
2
- <tr style="background-color: #F0F0FF" >
1
+ <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888; line-height: 80%">
2
+ <tr style="background-color: #F0F0FF">
3
3
  <td style="border-left: 1px solid #CCC">...</td>
4
4
  <td style="border-left: 1px solid #CCC">...</td>
5
5
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -35,9 +35,10 @@ private</pre></td>
@@ -19,42 +19,42 @@
19
19
  <td style="border-left: 1px solid #CCC">37</td>
20
20
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> def find_lines!</pre></td>
21
21
  </tr>
22
- <tr style="background-color: #FDD" >
22
+ <tr style="background-color: #FDD">
23
23
  <td style="border-left: 1px solid #CCC">38</td>
24
24
  <td style="border-left: 1px solid #CCC">.</td>
25
25
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- returning(@lines = []) do</pre></td>
26
26
  </tr>
27
- <tr style="background-color: #FDD" >
27
+ <tr style="border-top: 3px solid #F55; border-bottom: 3px solid #F55; background-color: #FDD; font-weight: bold">
28
28
  <td style="border-left: 1px solid #CCC">39</td>
29
29
  <td style="border-left: 1px solid #CCC">.</td>
30
30
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- input.split(/\r?\n/).each_with_index do |line_str, idx|</pre></td>
31
31
  </tr>
32
- <tr style="background-color: #FDD" >
32
+ <tr style="background-color: #FDD">
33
33
  <td style="border-left: 1px solid #CCC">40</td>
34
34
  <td style="border-left: 1px solid #CCC">.</td>
35
35
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- line = PrettyDiff::Line.new(diff, line_str, :number =&gt; idx)</pre></td>
36
36
  </tr>
37
- <tr style="background-color: #DFD" >
37
+ <tr style="background-color: #DFD">
38
38
  <td style="border-left: 1px solid #CCC">.</td>
39
39
  <td style="border-left: 1px solid #CCC">38</td>
40
40
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @lines = []</pre></td>
41
41
  </tr>
42
- <tr style="background-color: #DFD" >
42
+ <tr style="background-color: #DFD">
43
43
  <td style="border-left: 1px solid #CCC">.</td>
44
44
  <td style="border-left: 1px solid #CCC">39</td>
45
45
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @lines.tap do</pre></td>
46
46
  </tr>
47
- <tr style="background-color: #DFD; font-weight: bold" >
47
+ <tr style="border-top: 3px solid #5F5; border-bottom: 3px solid #5F5; background-color: #DFD; font-weight: bold">
48
48
  <td style="border-left: 1px solid #CCC">.</td>
49
49
  <td style="border-left: 1px solid #CCC">40</td>
50
50
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ input.split(/\r?\n/).each do |line_str|</pre></td>
51
51
  </tr>
52
- <tr style="background-color: #DFD" >
52
+ <tr style="background-color: #DFD">
53
53
  <td style="border-left: 1px solid #CCC">.</td>
54
54
  <td style="border-left: 1px solid #CCC">41</td>
55
55
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ line = PrettyDiff::Line.new(diff, line_str)</pre></td>
56
56
  </tr>
57
- <tr style="font-weight: bold" >
57
+ <tr style="border-top: 3px solid #999; border-bottom: 3px solid #999; background-color: #FFFBCC; font-weight: bold">
58
58
  <td style="border-left: 1px solid #CCC">41</td>
59
59
  <td style="border-left: 1px solid #CCC">42</td>
60
60
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> next if line.ignore?</pre></td>
@@ -1,5 +1,5 @@
1
- <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888">
2
- <tr style="background-color: #F0F0FF" >
1
+ <table cellpadding="5" style="border-collapse: collapse; border: 1px solid #CCC; font-family: Consolas, courier, monospace; font-size: 11px; color: #888; line-height: 80%">
2
+ <tr style="background-color: #F0F0FF">
3
3
  <td style="border-left: 1px solid #CCC">...</td>
4
4
  <td style="border-left: 1px solid #CCC">...</td>
5
5
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -23,7 +23,6 @@ import static org.apache.commons.lang3.Validate.isTrue;</pre></td>
@@ -19,7 +19,7 @@
19
19
  <td style="border-left: 1px solid #CCC">25</td>
20
20
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> import java.io.IOException;</pre></td>
21
21
  </tr>
22
- <tr style="background-color: #FDD" >
22
+ <tr style="background-color: #FDD">
23
23
  <td style="border-left: 1px solid #CCC">26</td>
24
24
  <td style="border-left: 1px solid #CCC">.</td>
25
25
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>-import java.io.InputStream;</pre></td>
@@ -39,7 +39,7 @@
39
39
  <td style="border-left: 1px solid #CCC">28</td>
40
40
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> import java.lang.reflect.Method;</pre></td>
41
41
  </tr>
42
- <tr style="background-color: #F0F0FF" >
42
+ <tr style="background-color: #F0F0FF">
43
43
  <td style="border-left: 1px solid #CCC">...</td>
44
44
  <td style="border-left: 1px solid #CCC">...</td>
45
45
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -75,7 +74,7 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -59,12 +59,12 @@
59
59
  <td style="border-left: 1px solid #CCC">76</td>
60
60
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
61
61
  </tr>
62
- <tr style="background-color: #FDD" >
62
+ <tr style="background-color: #FDD">
63
63
  <td style="border-left: 1px solid #CCC">78</td>
64
64
  <td style="border-left: 1px solid #CCC">.</td>
65
65
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static final Object JS_LOCK = new Object();</pre></td>
66
66
  </tr>
67
- <tr style="background-color: #DFD" >
67
+ <tr style="background-color: #DFD">
68
68
  <td style="border-left: 1px solid #CCC">.</td>
69
69
  <td style="border-left: 1px solid #CCC">77</td>
70
70
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private final Object jsLock = new Object();</pre></td>
@@ -84,7 +84,7 @@
84
84
  <td style="border-left: 1px solid #CCC">80</td>
85
85
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> * A pre-compiled JavaScript function.</pre></td>
86
86
  </tr>
87
- <tr style="background-color: #F0F0FF" >
87
+ <tr style="background-color: #F0F0FF">
88
88
  <td style="border-left: 1px solid #CCC">...</td>
89
89
  <td style="border-left: 1px solid #CCC">...</td>
90
90
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -85,12 +84,12 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -104,12 +104,12 @@
104
104
  <td style="border-left: 1px solid #CCC">86</td>
105
105
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
106
106
  </tr>
107
- <tr style="background-color: #FDD" >
107
+ <tr style="background-color: #FDD">
108
108
  <td style="border-left: 1px solid #CCC">88</td>
109
109
  <td style="border-left: 1px solid #CCC">.</td>
110
110
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static final String HBS_FILE = &quot;/handlebars-1.0.rc.3.js&quot;;</pre></td>
111
111
  </tr>
112
- <tr style="background-color: #DFD" >
112
+ <tr style="background-color: #DFD">
113
113
  <td style="border-left: 1px solid #CCC">.</td>
114
114
  <td style="border-left: 1px solid #CCC">87</td>
115
115
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private static final String HBS_FILE = &quot;/handlebars-1.0.0.js&quot;;</pre></td>
@@ -134,12 +134,12 @@
134
134
  <td style="border-left: 1px solid #CCC">91</td>
135
135
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
136
136
  </tr>
137
- <tr style="background-color: #FDD" >
137
+ <tr style="background-color: #FDD">
138
138
  <td style="border-left: 1px solid #CCC">93</td>
139
139
  <td style="border-left: 1px solid #CCC">.</td>
140
140
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static ScriptableObject sharedScope;</pre></td>
141
141
  </tr>
142
- <tr style="background-color: #DFD" >
142
+ <tr style="background-color: #DFD">
143
143
  <td style="border-left: 1px solid #CCC">.</td>
144
144
  <td style="border-left: 1px solid #CCC">92</td>
145
145
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private ScriptableObject sharedScope;</pre></td>
@@ -159,7 +159,7 @@
159
159
  <td style="border-left: 1px solid #CCC">95</td>
160
160
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> * {@inheritDoc}</pre></td>
161
161
  </tr>
162
- <tr style="background-color: #F0F0FF" >
162
+ <tr style="background-color: #F0F0FF">
163
163
  <td style="border-left: 1px solid #CCC">...</td>
164
164
  <td style="border-left: 1px solid #CCC">...</td>
165
165
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -287,7 +286,7 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -179,12 +179,12 @@
179
179
  <td style="border-left: 1px solid #CCC">288</td>
180
180
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> public String toJavaScript() throws IOException {</pre></td>
181
181
  </tr>
182
- <tr style="background-color: #FDD" >
182
+ <tr style="background-color: #FDD">
183
183
  <td style="border-left: 1px solid #CCC">290</td>
184
184
  <td style="border-left: 1px solid #CCC">.</td>
185
185
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- synchronized (JS_LOCK) {</pre></td>
186
186
  </tr>
187
- <tr style="background-color: #DFD" >
187
+ <tr style="background-color: #DFD">
188
188
  <td style="border-left: 1px solid #CCC">.</td>
189
189
  <td style="border-left: 1px solid #CCC">289</td>
190
190
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ synchronized (jsLock) {</pre></td>
@@ -204,7 +204,7 @@
204
204
  <td style="border-left: 1px solid #CCC">292</td>
205
205
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> try {</pre></td>
206
206
  </tr>
207
- <tr style="background-color: #F0F0FF" >
207
+ <tr style="background-color: #F0F0FF">
208
208
  <td style="border-left: 1px solid #CCC">...</td>
209
209
  <td style="border-left: 1px solid #CCC">...</td>
210
210
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -330,7 +329,7 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -224,12 +224,12 @@
224
224
  <td style="border-left: 1px solid #CCC">331</td>
225
225
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
226
226
  </tr>
227
- <tr style="background-color: #FDD" >
227
+ <tr style="background-color: #FDD">
228
228
  <td style="border-left: 1px solid #CCC">333</td>
229
229
  <td style="border-left: 1px solid #CCC">.</td>
230
230
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static Scriptable newScope(final org.mozilla.javascript.Context ctx) {</pre></td>
231
231
  </tr>
232
- <tr style="background-color: #DFD" >
232
+ <tr style="background-color: #DFD">
233
233
  <td style="border-left: 1px solid #CCC">.</td>
234
234
  <td style="border-left: 1px solid #CCC">332</td>
235
235
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private Scriptable newScope(final org.mozilla.javascript.Context ctx) {</pre></td>
@@ -249,7 +249,7 @@
249
249
  <td style="border-left: 1px solid #CCC">335</td>
250
250
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> scope.setParentScope(null);</pre></td>
251
251
  </tr>
252
- <tr style="background-color: #F0F0FF" >
252
+ <tr style="background-color: #F0F0FF">
253
253
  <td style="border-left: 1px solid #CCC">...</td>
254
254
  <td style="border-left: 1px solid #CCC">...</td>
255
255
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -345,12 +344,10 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -269,17 +269,17 @@
269
269
  <td style="border-left: 1px solid #CCC">346</td>
270
270
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
271
271
  </tr>
272
- <tr style="background-color: #FDD" >
272
+ <tr style="background-color: #FDD">
273
273
  <td style="border-left: 1px solid #CCC">348</td>
274
274
  <td style="border-left: 1px solid #CCC">.</td>
275
275
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static Scriptable</pre></td>
276
276
  </tr>
277
- <tr style="background-color: #FDD" >
277
+ <tr style="background-color: #FDD">
278
278
  <td style="border-left: 1px solid #CCC">349</td>
279
279
  <td style="border-left: 1px solid #CCC">.</td>
280
280
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- sharedScope(final org.mozilla.javascript.Context ctx) {</pre></td>
281
281
  </tr>
282
- <tr style="background-color: #DFD" >
282
+ <tr style="background-color: #DFD">
283
283
  <td style="border-left: 1px solid #CCC">.</td>
284
284
  <td style="border-left: 1px solid #CCC">347</td>
285
285
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private Scriptable sharedScope(final org.mozilla.javascript.Context ctx) {</pre></td>
@@ -294,17 +294,17 @@
294
294
  <td style="border-left: 1px solid #CCC">349</td>
295
295
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> sharedScope = ctx.initStandardObjects();</pre></td>
296
296
  </tr>
297
- <tr style="background-color: #FDD" >
297
+ <tr style="background-color: #FDD">
298
298
  <td style="border-left: 1px solid #CCC">352</td>
299
299
  <td style="border-left: 1px solid #CCC">.</td>
300
300
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- ctx.evaluateString(sharedScope, handlebarsScript(HBS_FILE), HBS_FILE, 1,</pre></td>
301
301
  </tr>
302
- <tr style="background-color: #FDD" >
302
+ <tr style="background-color: #FDD">
303
303
  <td style="border-left: 1px solid #CCC">353</td>
304
304
  <td style="border-left: 1px solid #CCC">.</td>
305
305
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- null);</pre></td>
306
306
  </tr>
307
- <tr style="background-color: #DFD" >
307
+ <tr style="background-color: #DFD">
308
308
  <td style="border-left: 1px solid #CCC">.</td>
309
309
  <td style="border-left: 1px solid #CCC">350</td>
310
310
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ ctx.evaluateString(sharedScope, handlebarsScript(HBS_FILE), HBS_FILE, 1, null);</pre></td>
@@ -324,7 +324,7 @@
324
324
  <td style="border-left: 1px solid #CCC">353</td>
325
325
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> }</pre></td>
326
326
  </tr>
327
- <tr style="background-color: #F0F0FF" >
327
+ <tr style="background-color: #F0F0FF">
328
328
  <td style="border-left: 1px solid #CCC">...</td>
329
329
  <td style="border-left: 1px solid #CCC">...</td>
330
330
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -361,25 +358,11 @@ abstract class BaseTemplate implements Template {</pre></td>
@@ -344,22 +344,22 @@
344
344
  <td style="border-left: 1px solid #CCC">360</td>
345
345
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> */</pre></td>
346
346
  </tr>
347
- <tr style="background-color: #FDD" >
347
+ <tr style="background-color: #FDD">
348
348
  <td style="border-left: 1px solid #CCC">364</td>
349
349
  <td style="border-left: 1px solid #CCC">.</td>
350
350
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- private static String handlebarsScript(final String location) {</pre></td>
351
351
  </tr>
352
- <tr style="background-color: #FDD" >
352
+ <tr style="background-color: #FDD">
353
353
  <td style="border-left: 1px solid #CCC">365</td>
354
354
  <td style="border-left: 1px solid #CCC">.</td>
355
355
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- InputStream in = BaseTemplate.class.getResourceAsStream(location);</pre></td>
356
356
  </tr>
357
- <tr style="background-color: #FDD" >
357
+ <tr style="background-color: #FDD">
358
358
  <td style="border-left: 1px solid #CCC">366</td>
359
359
  <td style="border-left: 1px solid #CCC">.</td>
360
360
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- notNull(in, &quot;Handlebars.js script not found at &quot; + location);</pre></td>
361
361
  </tr>
362
- <tr style="background-color: #DFD" >
362
+ <tr style="background-color: #DFD">
363
363
  <td style="border-left: 1px solid #CCC">.</td>
364
364
  <td style="border-left: 1px solid #CCC">361</td>
365
365
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ private String handlebarsScript(final String location) {</pre></td>
@@ -369,42 +369,42 @@
369
369
  <td style="border-left: 1px solid #CCC">362</td>
370
370
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> try {</pre></td>
371
371
  </tr>
372
- <tr style="background-color: #FDD" >
372
+ <tr style="background-color: #FDD">
373
373
  <td style="border-left: 1px solid #CCC">368</td>
374
374
  <td style="border-left: 1px solid #CCC">.</td>
375
375
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- int ch = in.read();</pre></td>
376
376
  </tr>
377
- <tr style="background-color: #FDD" >
377
+ <tr style="background-color: #FDD">
378
378
  <td style="border-left: 1px solid #CCC">369</td>
379
379
  <td style="border-left: 1px solid #CCC">.</td>
380
380
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- StringBuilder script = new StringBuilder();</pre></td>
381
381
  </tr>
382
- <tr style="background-color: #FDD" >
382
+ <tr style="background-color: #FDD">
383
383
  <td style="border-left: 1px solid #CCC">370</td>
384
384
  <td style="border-left: 1px solid #CCC">.</td>
385
385
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- while (ch != -1) {</pre></td>
386
386
  </tr>
387
- <tr style="background-color: #FDD" >
387
+ <tr style="background-color: #FDD">
388
388
  <td style="border-left: 1px solid #CCC">371</td>
389
389
  <td style="border-left: 1px solid #CCC">.</td>
390
390
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- script.append((char) ch);</pre></td>
391
391
  </tr>
392
- <tr style="background-color: #FDD" >
392
+ <tr style="background-color: #FDD">
393
393
  <td style="border-left: 1px solid #CCC">372</td>
394
394
  <td style="border-left: 1px solid #CCC">.</td>
395
395
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- ch = in.read();</pre></td>
396
396
  </tr>
397
- <tr style="background-color: #FDD" >
397
+ <tr style="background-color: #FDD">
398
398
  <td style="border-left: 1px solid #CCC">373</td>
399
399
  <td style="border-left: 1px solid #CCC">.</td>
400
400
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- }</pre></td>
401
401
  </tr>
402
- <tr style="background-color: #FDD" >
402
+ <tr style="background-color: #FDD">
403
403
  <td style="border-left: 1px solid #CCC">374</td>
404
404
  <td style="border-left: 1px solid #CCC">.</td>
405
405
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- return script.toString();</pre></td>
406
406
  </tr>
407
- <tr style="background-color: #DFD" >
407
+ <tr style="background-color: #DFD">
408
408
  <td style="border-left: 1px solid #CCC">.</td>
409
409
  <td style="border-left: 1px solid #CCC">363</td>
410
410
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ return Files.read(location);</pre></td>
@@ -414,42 +414,42 @@
414
414
  <td style="border-left: 1px solid #CCC">364</td>
415
415
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> } catch (IOException ex) {</pre></td>
416
416
  </tr>
417
- <tr style="background-color: #FDD" >
417
+ <tr style="background-color: #FDD">
418
418
  <td style="border-left: 1px solid #CCC">376</td>
419
419
  <td style="border-left: 1px solid #CCC">.</td>
420
420
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- throw new IllegalStateException(&quot;Unable to read file &quot; + location);</pre></td>
421
421
  </tr>
422
- <tr style="background-color: #FDD" >
422
+ <tr style="background-color: #FDD">
423
423
  <td style="border-left: 1px solid #CCC">377</td>
424
424
  <td style="border-left: 1px solid #CCC">.</td>
425
425
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- } finally {</pre></td>
426
426
  </tr>
427
- <tr style="background-color: #FDD" >
427
+ <tr style="background-color: #FDD">
428
428
  <td style="border-left: 1px solid #CCC">378</td>
429
429
  <td style="border-left: 1px solid #CCC">.</td>
430
430
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- try {</pre></td>
431
431
  </tr>
432
- <tr style="background-color: #FDD" >
432
+ <tr style="background-color: #FDD">
433
433
  <td style="border-left: 1px solid #CCC">379</td>
434
434
  <td style="border-left: 1px solid #CCC">.</td>
435
435
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- in.close();</pre></td>
436
436
  </tr>
437
- <tr style="background-color: #FDD" >
437
+ <tr style="background-color: #FDD">
438
438
  <td style="border-left: 1px solid #CCC">380</td>
439
439
  <td style="border-left: 1px solid #CCC">.</td>
440
440
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- } catch (IOException ex) {</pre></td>
441
441
  </tr>
442
- <tr style="background-color: #FDD" >
442
+ <tr style="background-color: #FDD">
443
443
  <td style="border-left: 1px solid #CCC">381</td>
444
444
  <td style="border-left: 1px solid #CCC">.</td>
445
445
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- throw new IllegalStateException(&quot;Unable to close file &quot; + location);</pre></td>
446
446
  </tr>
447
- <tr style="background-color: #FDD" >
447
+ <tr style="background-color: #FDD">
448
448
  <td style="border-left: 1px solid #CCC">382</td>
449
449
  <td style="border-left: 1px solid #CCC">.</td>
450
450
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- }</pre></td>
451
451
  </tr>
452
- <tr style="background-color: #DFD" >
452
+ <tr style="background-color: #DFD">
453
453
  <td style="border-left: 1px solid #CCC">.</td>
454
454
  <td style="border-left: 1px solid #CCC">365</td>
455
455
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ throw new IllegalArgumentException(&quot;Unable to read file: &quot; + location, ex);</pre></td>
@@ -469,7 +469,7 @@
469
469
  <td style="border-left: 1px solid #CCC">368</td>
470
470
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> }</pre></td>
471
471
  </tr>
472
- <tr style="background-color: #F0F0FF" >
472
+ <tr style="background-color: #F0F0FF">
473
473
  <td style="border-left: 1px solid #CCC">...</td>
474
474
  <td style="border-left: 1px solid #CCC">...</td>
475
475
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #888"><pre>@@ -2,32 +2,32 @@ package com.github.jknack.handlebars;</pre></td>
@@ -489,12 +489,12 @@
489
489
  <td style="border-left: 1px solid #CCC">4</td>
490
490
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
491
491
  </tr>
492
- <tr style="background-color: #FDD" >
492
+ <tr style="background-color: #FDD">
493
493
  <td style="border-left: 1px solid #CCC">5</td>
494
494
  <td style="border-left: 1px solid #CCC">.</td>
495
495
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>-import org.junit.Test;</pre></td>
496
496
  </tr>
497
- <tr style="background-color: #FDD" >
497
+ <tr style="background-color: #FDD">
498
498
  <td style="border-left: 1px solid #CCC">6</td>
499
499
  <td style="border-left: 1px solid #CCC">.</td>
500
500
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>-</pre></td>
@@ -509,12 +509,12 @@
509
509
  <td style="border-left: 1px solid #CCC">6</td>
510
510
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
511
511
  </tr>
512
- <tr style="background-color: #DFD" >
512
+ <tr style="background-color: #DFD">
513
513
  <td style="border-left: 1px solid #CCC">.</td>
514
514
  <td style="border-left: 1px solid #CCC">7</td>
515
515
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+import org.junit.Test;</pre></td>
516
516
  </tr>
517
- <tr style="background-color: #DFD" >
517
+ <tr style="background-color: #DFD">
518
518
  <td style="border-left: 1px solid #CCC">.</td>
519
519
  <td style="border-left: 1px solid #CCC">8</td>
520
520
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+</pre></td>
@@ -529,22 +529,22 @@
529
529
  <td style="border-left: 1px solid #CCC">10</td>
530
530
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
531
531
  </tr>
532
- <tr style="background-color: #FDD" >
532
+ <tr style="background-color: #FDD">
533
533
  <td style="border-left: 1px solid #CCC">11</td>
534
534
  <td style="border-left: 1px solid #CCC">.</td>
535
535
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- public static class UnsafeString {</pre></td>
536
536
  </tr>
537
- <tr style="background-color: #FDD" >
537
+ <tr style="background-color: #FDD">
538
538
  <td style="border-left: 1px solid #CCC">12</td>
539
539
  <td style="border-left: 1px solid #CCC">.</td>
540
540
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- String underlying;</pre></td>
541
541
  </tr>
542
- <tr style="background-color: #DFD" >
542
+ <tr style="background-color: #DFD">
543
543
  <td style="border-left: 1px solid #CCC">.</td>
544
544
  <td style="border-left: 1px solid #CCC">11</td>
545
545
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ public static class UnsafeString {</pre></td>
546
546
  </tr>
547
- <tr style="background-color: #DFD" >
547
+ <tr style="background-color: #DFD">
548
548
  <td style="border-left: 1px solid #CCC">.</td>
549
549
  <td style="border-left: 1px solid #CCC">12</td>
550
550
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ String underlying;</pre></td>
@@ -554,32 +554,32 @@
554
554
  <td style="border-left: 1px solid #CCC">13</td>
555
555
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
556
556
  </tr>
557
- <tr style="background-color: #FDD" >
557
+ <tr style="background-color: #FDD">
558
558
  <td style="border-left: 1px solid #CCC">14</td>
559
559
  <td style="border-left: 1px solid #CCC">.</td>
560
560
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- public UnsafeString(String underlying) {</pre></td>
561
561
  </tr>
562
- <tr style="background-color: #FDD" >
562
+ <tr style="background-color: #FDD">
563
563
  <td style="border-left: 1px solid #CCC">15</td>
564
564
  <td style="border-left: 1px solid #CCC">.</td>
565
565
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- this.underlying = underlying;</pre></td>
566
566
  </tr>
567
- <tr style="background-color: #FDD" >
567
+ <tr style="background-color: #FDD">
568
568
  <td style="border-left: 1px solid #CCC">16</td>
569
569
  <td style="border-left: 1px solid #CCC">.</td>
570
570
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- }</pre></td>
571
571
  </tr>
572
- <tr style="background-color: #DFD" >
572
+ <tr style="background-color: #DFD">
573
573
  <td style="border-left: 1px solid #CCC">.</td>
574
574
  <td style="border-left: 1px solid #CCC">14</td>
575
575
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ public UnsafeString(final String underlying) {</pre></td>
576
576
  </tr>
577
- <tr style="background-color: #DFD" >
577
+ <tr style="background-color: #DFD">
578
578
  <td style="border-left: 1px solid #CCC">.</td>
579
579
  <td style="border-left: 1px solid #CCC">15</td>
580
580
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ this.underlying = underlying;</pre></td>
581
581
  </tr>
582
- <tr style="background-color: #DFD" >
582
+ <tr style="background-color: #DFD">
583
583
  <td style="border-left: 1px solid #CCC">.</td>
584
584
  <td style="border-left: 1px solid #CCC">16</td>
585
585
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ }</pre></td>
@@ -589,37 +589,37 @@
589
589
  <td style="border-left: 1px solid #CCC">17</td>
590
590
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
591
591
  </tr>
592
- <tr style="background-color: #FDD" >
592
+ <tr style="background-color: #FDD">
593
593
  <td style="border-left: 1px solid #CCC">18</td>
594
594
  <td style="border-left: 1px solid #CCC">.</td>
595
595
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- @Override</pre></td>
596
596
  </tr>
597
- <tr style="background-color: #FDD" >
597
+ <tr style="background-color: #FDD">
598
598
  <td style="border-left: 1px solid #CCC">19</td>
599
599
  <td style="border-left: 1px solid #CCC">.</td>
600
600
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- public String toString() {</pre></td>
601
601
  </tr>
602
- <tr style="background-color: #FDD" >
602
+ <tr style="background-color: #FDD">
603
603
  <td style="border-left: 1px solid #CCC">20</td>
604
604
  <td style="border-left: 1px solid #CCC">.</td>
605
605
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- return &quot;&lt;h1&gt;&quot; + underlying + &quot;&lt;/h1&gt;&quot;;</pre></td>
606
606
  </tr>
607
- <tr style="background-color: #FDD" >
607
+ <tr style="background-color: #FDD">
608
608
  <td style="border-left: 1px solid #CCC">21</td>
609
609
  <td style="border-left: 1px solid #CCC">.</td>
610
610
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- }</pre></td>
611
611
  </tr>
612
- <tr style="background-color: #DFD" >
612
+ <tr style="background-color: #DFD">
613
613
  <td style="border-left: 1px solid #CCC">.</td>
614
614
  <td style="border-left: 1px solid #CCC">18</td>
615
615
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @Override</pre></td>
616
616
  </tr>
617
- <tr style="background-color: #DFD" >
617
+ <tr style="background-color: #DFD">
618
618
  <td style="border-left: 1px solid #CCC">.</td>
619
619
  <td style="border-left: 1px solid #CCC">19</td>
620
620
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ public String toString() {</pre></td>
621
621
  </tr>
622
- <tr style="background-color: #DFD" >
622
+ <tr style="background-color: #DFD">
623
623
  <td style="border-left: 1px solid #CCC">.</td>
624
624
  <td style="border-left: 1px solid #CCC">20</td>
625
625
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ return &quot;&lt;h1&gt;&quot; + underlying + &quot;&lt;/h1&gt;&quot;;</pre></td>
@@ -629,7 +629,7 @@
629
629
  <td style="border-left: 1px solid #CCC">21</td>
630
630
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> }</pre></td>
631
631
  </tr>
632
- <tr style="background-color: #DFD" >
632
+ <tr style="background-color: #DFD">
633
633
  <td style="border-left: 1px solid #CCC">.</td>
634
634
  <td style="border-left: 1px solid #CCC">22</td>
635
635
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ }</pre></td>
@@ -639,42 +639,42 @@
639
639
  <td style="border-left: 1px solid #CCC">23</td>
640
640
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
641
641
  </tr>
642
- <tr style="background-color: #FDD" >
642
+ <tr style="background-color: #FDD">
643
643
  <td style="border-left: 1px solid #CCC">24</td>
644
644
  <td style="border-left: 1px solid #CCC">.</td>
645
645
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- @Test</pre></td>
646
646
  </tr>
647
- <tr style="background-color: #FDD" >
647
+ <tr style="background-color: #FDD">
648
648
  <td style="border-left: 1px solid #CCC">25</td>
649
649
  <td style="border-left: 1px solid #CCC">.</td>
650
650
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- public void unsafeString() throws IOException {</pre></td>
651
651
  </tr>
652
- <tr style="background-color: #FDD" >
652
+ <tr style="background-color: #FDD">
653
653
  <td style="border-left: 1px solid #CCC">26</td>
654
654
  <td style="border-left: 1px solid #CCC">.</td>
655
655
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- Handlebars handlebars = new Handlebars();</pre></td>
656
656
  </tr>
657
- <tr style="background-color: #FDD" >
657
+ <tr style="background-color: #FDD">
658
658
  <td style="border-left: 1px solid #CCC">27</td>
659
659
  <td style="border-left: 1px solid #CCC">.</td>
660
660
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- Template template = handlebars.compileInline(&quot;{{this}}&quot;);</pre></td>
661
661
  </tr>
662
- <tr style="background-color: #DFD" >
662
+ <tr style="background-color: #DFD">
663
663
  <td style="border-left: 1px solid #CCC">.</td>
664
664
  <td style="border-left: 1px solid #CCC">24</td>
665
665
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ @Test</pre></td>
666
666
  </tr>
667
- <tr style="background-color: #DFD" >
667
+ <tr style="background-color: #DFD">
668
668
  <td style="border-left: 1px solid #CCC">.</td>
669
669
  <td style="border-left: 1px solid #CCC">25</td>
670
670
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ public void unsafeString() throws IOException {</pre></td>
671
671
  </tr>
672
- <tr style="background-color: #DFD" >
672
+ <tr style="background-color: #DFD">
673
673
  <td style="border-left: 1px solid #CCC">.</td>
674
674
  <td style="border-left: 1px solid #CCC">26</td>
675
675
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ Handlebars handlebars = new Handlebars();</pre></td>
676
676
  </tr>
677
- <tr style="background-color: #DFD" >
677
+ <tr style="background-color: #DFD">
678
678
  <td style="border-left: 1px solid #CCC">.</td>
679
679
  <td style="border-left: 1px solid #CCC">27</td>
680
680
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ Template template = handlebars.compileInline(&quot;{{this}}&quot;);</pre></td>
@@ -684,12 +684,12 @@
684
684
  <td style="border-left: 1px solid #CCC">28</td>
685
685
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
686
686
  </tr>
687
- <tr style="background-color: #FDD" >
687
+ <tr style="background-color: #FDD">
688
688
  <td style="border-left: 1px solid #CCC">29</td>
689
689
  <td style="border-left: 1px solid #CCC">.</td>
690
690
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- String result = template.apply(new UnsafeString(&quot;Hello&quot;));</pre></td>
691
691
  </tr>
692
- <tr style="background-color: #DFD" >
692
+ <tr style="background-color: #DFD">
693
693
  <td style="border-left: 1px solid #CCC">.</td>
694
694
  <td style="border-left: 1px solid #CCC">29</td>
695
695
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ String result = template.apply(new UnsafeString(&quot;Hello&quot;));</pre></td>
@@ -699,22 +699,22 @@
699
699
  <td style="border-left: 1px solid #CCC">30</td>
700
700
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre> </pre></td>
701
701
  </tr>
702
- <tr style="background-color: #FDD" >
702
+ <tr style="background-color: #FDD">
703
703
  <td style="border-left: 1px solid #CCC">31</td>
704
704
  <td style="border-left: 1px solid #CCC">.</td>
705
705
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- assertEquals(&quot;&amp;lt;h1&amp;gt;Hello&amp;lt;/h1&amp;gt;&quot;, result);</pre></td>
706
706
  </tr>
707
- <tr style="background-color: #FDD" >
707
+ <tr style="background-color: #FDD">
708
708
  <td style="border-left: 1px solid #CCC">32</td>
709
709
  <td style="border-left: 1px solid #CCC">.</td>
710
710
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>- }</pre></td>
711
711
  </tr>
712
- <tr style="background-color: #DFD" >
712
+ <tr style="background-color: #DFD">
713
713
  <td style="border-left: 1px solid #CCC">.</td>
714
714
  <td style="border-left: 1px solid #CCC">31</td>
715
715
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ assertEquals(&quot;&amp;lt;h1&amp;gt;Hello&amp;lt;/h1&amp;gt;&quot;, result);</pre></td>
716
716
  </tr>
717
- <tr style="background-color: #DFD" >
717
+ <tr style="background-color: #DFD">
718
718
  <td style="border-left: 1px solid #CCC">.</td>
719
719
  <td style="border-left: 1px solid #CCC">32</td>
720
720
  <td style="border-left: 1px solid #CCC; border-right: 1px solid #CCC; color: #000"><pre>+ }</pre></td>