Changeset 1263
- Timestamp:
- 02/04/08 03:54:39 (10 months ago)
- Files:
-
- ruport/branches/1.4/lib/ruport/formatter.rb (modified) (2 diffs)
- ruport/branches/1.4/lib/ruport/renderer.rb (modified) (1 diff)
- ruport/branches/1.4/test/renderer_test.rb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
ruport/branches/1.4/lib/ruport/formatter.rb
r1231 r1263 137 137 138 138 # Set by the <tt>:data</tt> attribute from Renderer#render 139 attr_ accessor :data139 attr_reader :data 140 140 141 141 # Set automatically by Renderer#render(format) or Renderer#render_format … … 202 202 end 203 203 204 # Sets the data object, making a local copy using #dup. This may have 205 # a significant overhead for large tables, so formatters which don't 206 # modify the data object may wish to override this. 207 def data=(val) 208 @data = val.dup 209 end 210 204 211 # Clears the output. 205 212 def clear_output ruport/branches/1.4/lib/ruport/renderer.rb
r1237 r1263 409 409 # Sets +data+ attribute on the active formatter. 410 410 def data=(val) 411 formatter.data = val .dup411 formatter.data = val 412 412 end 413 413 ruport/branches/1.4/test/renderer_test.rb
r1237 r1263 64 64 end 65 65 66 # This formatter modifies the (String) data object passed to it 67 class Destructive < Ruport::Formatter 68 69 def prepare_document; end 70 71 def build_header; end 72 73 def build_body 74 output << "You sent #{data}" 75 data.replace("RUBBISH") 76 end 77 78 def build_footer; end 79 80 def finalize_document; end 81 end 82 83 66 84 class VanillaBinary < Ruport::Formatter 67 85 renders :bin, :for => VanillaRenderer … … 261 279 class RendererWithManyHooks < Ruport::Renderer 262 280 add_format DummyText, :text 281 add_format Destructive, :destructive 263 282 264 283 prepare :document … … 297 316 assert_equal :red, r.options.snapper 298 317 } 318 end 319 320 def test_formatter_data_dup 321 source = "some text" 322 result = RendererWithManyHooks.render(:destructive, :data => source) 323 assert_equal("You sent some text", result) 324 assert_equal("some text", source) 299 325 end 300 326
