Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
require 'rexml/document' require 'rexml/formatters/transitive' require File.dirname(__FILE__) + '/../../../spec_helper' # Maybe this can be cleaned describe "REXML::Document#write" do before :each do @d = REXML::Document.new city = REXML::Element.new "Springfield" street = REXML::Element.new "EvergreenTerrace" address = REXML::Element.new "House742" @d << city << street << address @str = "" end it "returns document source as string" do @d.write(@str) @str.should == "<Springfield><EvergreenTerrace><House742/></EvergreenTerrace></Springfield>" end it "returns document indented" do @d.write(@str, 2) @str.should =~ /\s*<Springfield>\s*<EvergreenTerrace>\s*<House742\/>\s*<\/EvergreenTerrace>\s*<\/Springfield>/ end # REXML in p114 is screwed up: # Document#write uses wrong arity for Formatters::Transitive#initialize # # In branch_1_8 in rev 15833 REXML is organized completely differently. # So we are waiting for further changes to REXML in 1.8.x branch. ruby_bug do it "returns document with transitive support" do @d.write(@str, 2, true) @str.should =~ "\s*<Springfield\s*><EvergreenTerrace\s*><House742\s*\/><\/EvergreenTerrace\s*><\/Springfield\s*>" end end it "returns document with support for IE" do @d.write(@str, -1, false, true) @str.should == "<Springfield><EvergreenTerrace><House742 /></EvergreenTerrace></Springfield>" end end 1) REXML::Document#write returns document with transitive support ERROR wrong number of arguments (got 2, required 1) REXML::Formatters::Transitive#initialize at /Users/antares/dev/opensource/rbx/stdlib/rexml/formatters/transitive.rb:16 Class#new at kernel/bootstrap/class.rb:16 REXML::Document#write at /Users/antares/dev/opensource/rbx/stdlib/rexml/document.rb:188 Object#__script__ {} at ./spec/ruby/1.8/library/rexml/document/write_spec.rb:33 Proc#call at kernel/core/proc.rb:84 MSpec.protect at ./mspec/runner/mspec.rb:116 RunState#protect {} at ./mspec/runner/state.rb:46 Array#each at kernel/core/array.rb:573 RunState#protect at ./mspec/runner/state.rb:46 RunState#process {} at ./mspec/runner/state.rb:64 Array#each at kernel/core/array.rb:573 RunState#process at ./mspec/runner/state.rb:68 MSpec.describe at ./mspec/runner/mspec.rb:21 Object#describe at ./mspec/runner/object.rb:11 Object#__script__ at ./spec/ruby/1.8/library/rexml/document/write_spec.rb:6 CompiledMethod#as_script at kernel/core/compiled_method.rb:210 Compile.single_load at kernel/core/compile.rb:235 Compile.unified_load {} at kernel/core/compile.rb:150 Array#each at kernel/core/array.rb:573 Compile.unified_load at kernel/core/compile.rb:120 Kernel.load at kernel/core/compile.rb:389 MSpec.files {} at ./mspec/runner/mspec.rb:37 Proc#call at kernel/core/proc.rb:84 MSpec.protect at ./mspec/runner/mspec.rb:112 MSpec.files {} at ./mspec/runner/mspec.rb:38 Array#each at kernel/core/array.rb:573 MSpec.files at ./mspec/runner/mspec.rb:34 MSpec.process at ./mspec/runner/mspec.rb:27 Object#__script__ at mspec/bin/mspec-ci:59 CompiledMethod#as_script at kernel/core/compiled_method.rb:210 Compile.single_load at kernel/core/compile.rb:235 Compile.load_from_extension at kernel/core/compile.rb:312 Object#__script__ at kernel/loader.rb:190
From the Design Piracy series on my blog: