builder 3.2.2 → 3.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 561f240bd6d9e8e7931fd78579159b48c1daf697
4
- data.tar.gz: 4ccab08f74ed945a1c4ee50fffe561697eeec1b9
2
+ SHA256:
3
+ metadata.gz: 386ed394ff60c6aff710d3304b69fac8ead0e6c89b80f80691b434fcb772290f
4
+ data.tar.gz: 42ccc387ac8ba03c586bf3b280977292418e96031e859ea764808a8d132e5654
5
5
  SHA512:
6
- metadata.gz: 23d25f69aa4b983c32a2eaf03fd0c73c8c7ea5413adb35f809ae90c1ed0309c2680629fec54efb6abf37099c2954b57ba149ab61fbea8ed5a0694953ae59cb69
7
- data.tar.gz: f44e6ae73298f7aa9e70707e6c3e14d80328070850b9c73d53ee982bcc7499bf8d113c9f0c91bf803f0f567a1b66d603c6184d7fd0caac40183798cb6ff41461
6
+ metadata.gz: 76c76d003cc4198733b46dfb9078d130a298c90a5fda954b521c965ae91c891212be43808b29b0d55824b4f3cdfa96289ea2267a57425713725a3ef30b930d83
7
+ data.tar.gz: dba82177c0a2ef38fdafbe1bb875487ad8e112b1f298c06a4a6c001c267172bd1043245229f45839bcdd64e0f2cc8093f7a4d27a5839b65446926560b936463d
data/CHANGES CHANGED
@@ -1,6 +1,18 @@
1
1
  = Change Log
2
2
 
3
- == Version 3.2.0
3
+ == Version 3.2.3 (2017-01-13)
4
+
5
+ * Support for Ruby 2.4
6
+
7
+ == Version 3.2.2 (2013-06-01
8
+
9
+ * Misc minor fixes
10
+
11
+ == Version 3.2.1 (2013-05-30)
12
+
13
+ * Travis & Rdoc fixes
14
+
15
+ == Version 3.2.0 (2013-02-23)
4
16
 
5
17
  * Ruby 2.0 compatibility changes.
6
18
 
data/README.md CHANGED
@@ -23,7 +23,7 @@ Builder::XmlEvents:: Generate XML events (i.e. SAX-like)
23
23
  require_gem 'builder', '~> 2.0'
24
24
 
25
25
  builder = Builder::XmlMarkup.new
26
- ` xml = builder.person { |b| b.name("Jim"); b.phone("555-1234") }
26
+ xml = builder.person { |b| b.name("Jim"); b.phone("555-1234") }
27
27
  xml #=> <person><name>Jim</name><phone>555-1234</phone></person>
28
28
  ```
29
29
 
@@ -62,7 +62,7 @@ request on the 1.x Builder series.
62
62
 
63
63
  Starting with Builder version 2.0.0, all attribute values expressed as
64
64
  strings will be processed and the appropriate characters will be
65
- escaped (e.g. "&" will be translated to "&amp;"). Attribute values
65
+ escaped (e.g. "&" will be translated to "&amp;amp;"). Attribute values
66
66
  that are expressed as Symbol values will not be processed for escaped
67
67
  characters and will be unchanged in output. (Yes, this probably counts
68
68
  as Symbol abuse, but the convention is convenient and flexible).
@@ -245,8 +245,8 @@ incompatibility are:
245
245
  | Description | Link |
246
246
  | :----: | :----: |
247
247
  | Documents | http://builder.rubyforge.org/ |
248
- | Github Clone | git://github.com/jimweirich/builder.git |
249
- | Issue / Bug Reports | https://github.com/jimweirich/builder/issues?state=open |
248
+ | Github Clone | git://github.com/tenderlove/builder.git |
249
+ | Issue / Bug Reports | https://github.com/tenderlove/builder/issues?state=open |
250
250
 
251
251
  ## Contact
252
252
 
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Rakefile for rake -*- ruby -*-
2
3
 
3
4
  # Copyright 2004, 2005, 2006 by Jim Weirich (jim@weirichhouse.org).
@@ -43,7 +44,7 @@ task :tu => [:test_units]
43
44
 
44
45
  Rake::TestTask.new("test_units") do |t|
45
46
  t.test_files = FileList['test/test*.rb']
46
- t.libs << "."
47
+ t.libs << "." << "test"
47
48
  t.verbose = false
48
49
  end
49
50
 
@@ -104,7 +105,6 @@ simple to do. Currently the following builder objects are supported:
104
105
 
105
106
  s.test_files = PKG_FILES.select { |fn| fn =~ /^test\/test/ }
106
107
 
107
- s.has_rdoc = true
108
108
  s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
109
109
  s.rdoc_options <<
110
110
  '--title' << 'Builder -- Easy XML Building' <<
@@ -135,7 +135,6 @@ classes that make heavy use of method_missing.
135
135
 
136
136
  s.test_files = PKG_FILES.select { |fn| fn =~ /^test\/test/ }
137
137
 
138
- s.has_rdoc = true
139
138
  s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
140
139
  s.rdoc_options <<
141
140
  '--title' << 'BlankSlate -- Base Class for building proxies.' <<
data/builder.blurb ADDED
@@ -0,0 +1,27 @@
1
+ name: builder
2
+ document: http://builder.rubyforge.org
3
+ download: http://rubyforge.org/frs/?group_id=415
4
+ description: >
5
+ <p>This package contains Builder, a simple ruby library for
6
+ building XML document quickly and easily.</p>
7
+
8
+ <p>Here's an example:</p>
9
+
10
+ <pre>
11
+ xml = Builder::XmlMarkup.new(:indent=>2)
12
+ xml.person {
13
+ xml.first_name("Jim")
14
+ xml.last_name("Weirich")
15
+ }
16
+ puts xml.target!
17
+ </pre>
18
+
19
+ <p>Produces:</p>
20
+
21
+ <pre>
22
+ &lt;person&gt;
23
+ &lt;first_name&gt;Jim&lt;/first_name&gt;
24
+ &lt;last_name&gt;Weirich&lt;/last_name&gt;
25
+ &lt;/person&gt;
26
+ </pre>
27
+
data/builder.gemspec ADDED
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+ require './lib/builder/version'
3
+
4
+ PKG_VERSION = Builder::VERSION
5
+
6
+ PKG_FILES = Dir[
7
+ '[A-Z]*',
8
+ 'doc/**/*',
9
+ 'lib/**/*.rb',
10
+ 'test/**/*.rb',
11
+ 'rakelib/**/*'
12
+ ]
13
+
14
+ Gem::Specification.new do |s|
15
+
16
+ #### Basic information.
17
+
18
+ s.name = 'builder'
19
+ s.version = PKG_VERSION
20
+ s.summary = "Builders for MarkUp."
21
+ s.description = %{\
22
+ Builder provides a number of builder objects that make creating structured data
23
+ simple to do. Currently the following builder objects are supported:
24
+
25
+ * XML Markup
26
+ * XML Events
27
+ }
28
+
29
+ s.files = PKG_FILES
30
+ s.require_path = 'lib'
31
+
32
+ s.test_files = PKG_FILES.select { |fn| fn =~ /^test\/test/ }
33
+
34
+ s.has_rdoc = true
35
+ # s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
36
+ s.rdoc_options <<
37
+ '--title' << 'Builder -- Easy XML Building' <<
38
+ '--main' << 'README.rdoc' <<
39
+ '--line-numbers'
40
+
41
+ s.authors = ["Jim Weirich", "Aaron Patterson"]
42
+ s.email = "aron.patterson@gmail.com"
43
+ s.homepage = "https://github.com/tenderlove/builder"
44
+ s.license = 'MIT'
45
+ end
data/doc/jamis.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module RDoc
2
3
  module Page
3
4
 
data/lib/blankslate.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  #--
3
4
  # Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org).
4
5
  # All rights reserved.
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  #--
3
4
  # Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org).
4
5
  # All rights reserved.
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module Builder
2
3
  VERSION_NUMBERS = [
3
4
  VERSION_MAJOR = 3,
4
5
  VERSION_MINOR = 2,
5
- VERSION_BUILD = 2,
6
+ VERSION_BUILD = 4,
6
7
  ]
7
8
  VERSION = VERSION_NUMBERS.join(".")
8
9
  end
data/lib/builder/xchar.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  # The XChar library is provided courtesy of Sam Ruby (See
4
5
  # http://intertwingly.net/stories/2005/09/28/xchar.rb)
@@ -19,7 +20,7 @@ end
19
20
 
20
21
  if ! defined?(Builder::XChar) and ! String.method_defined?(:encode)
21
22
  Builder.check_for_name_collision(String, "to_xs")
22
- Builder.check_for_name_collision(Fixnum, "xchr")
23
+ Builder.check_for_name_collision(Integer, "xchr")
23
24
  end
24
25
 
25
26
  ######################################################################
@@ -108,7 +109,7 @@ if String.method_defined?(:encode)
108
109
  INVALID_XML_CHAR = Regexp.new('[^'+
109
110
  Builder::XChar::VALID.map { |item|
110
111
  case item
111
- when Fixnum
112
+ when Integer
112
113
  [item].pack('U').force_encoding('utf-8')
113
114
  when Range
114
115
  [item.first, '-'.ord, item.last].pack('UUU').force_encoding('utf-8')
@@ -160,9 +161,9 @@ if String.method_defined?(:encode)
160
161
  else
161
162
 
162
163
  ######################################################################
163
- # Enhance the Fixnum class with a XML escaped character conversion.
164
+ # Enhance the Integer class with a XML escaped character conversion.
164
165
  #
165
- class Fixnum
166
+ class Integer
166
167
  XChar = Builder::XChar if ! defined?(XChar)
167
168
 
168
169
  # XML escaped version of chr. When <tt>escape</tt> is set to false
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'builder/blankslate'
4
5
 
@@ -52,7 +53,7 @@ module Builder
52
53
  attrs ||= {}
53
54
  attrs.merge!({:nil => true}) if explicit_nil_handling?
54
55
  else
55
- text ||= ''
56
+ text ||= ''.dup
56
57
  text << arg.to_s
57
58
  end
58
59
  end
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  #--
3
4
  # Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org).
4
5
  # All rights reserved.
@@ -192,7 +193,7 @@ module Builder
192
193
  @quote = (options[:quote] == :single) ? "'" : '"'
193
194
  @explicit_nil_handling = options[:explicit_nil_handling]
194
195
  super(indent, margin)
195
- @target = options[:target] || ""
196
+ @target = options[:target] || "".dup
196
197
  end
197
198
 
198
199
  # Return the target of the builder.
@@ -271,6 +272,11 @@ module Builder
271
272
  _special("<![CDATA[", "]]>", text.gsub(']]>', ']]]]><![CDATA[>'), nil)
272
273
  end
273
274
 
275
+ def cdata_value!(open, text)
276
+ _ensure_no_block ::Kernel::block_given?
277
+ _special("<#{open}>", "</#{open}>", "<![CDATA[#{text.gsub(']]>', ']]]]><![CDATA[>')}]]>", nil)
278
+ end
279
+
274
280
  private
275
281
 
276
282
  # NOTE: All private methods of a builder object are prefixed when
data/lib/builder.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Copyright 2004 by Jim Weirich (jim@weirichhouse.org).
data/rakelib/publish.rake CHANGED
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # Optional publish task for Rake
2
3
 
4
+ begin
3
5
  require 'rake/contrib/sshpublisher'
4
6
  require 'rake/contrib/rubyforgepublisher'
5
7
 
@@ -15,3 +17,5 @@ desc "Publish the Documentation to RubyForge."
15
17
  task :publish => [:rdoc] do
16
18
  publisher.upload
17
19
  end
20
+ rescue LoadError
21
+ end
data/rakelib/tags.rake CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Tags
4
5
  extend Rake::DSL if defined?(Rake::DSL)
@@ -12,8 +13,8 @@ module Tags
12
13
 
13
14
  PROJECT_DIR = ['.']
14
15
 
15
- RVM_GEMDIR = File.join(`rvm gemdir`.strip, "gems")
16
- SYSTEM_DIRS = File.exists?(RVM_GEMDIR) ? RVM_GEMDIR : []
16
+ RVM_GEMDIR = File.join(`rvm gemdir`.strip, "gems") rescue nil
17
+ SYSTEM_DIRS = RVM_GEMDIR && File.exists?(RVM_GEMDIR) ? RVM_GEMDIR : []
17
18
 
18
19
  module_function
19
20
 
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "test"
6
+ t.test_files = FileList['test/test*.rb']
7
+ t.verbose = true
8
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ require 'minitest/autorun'
3
+
4
+ module Builder
5
+ class Test < Minitest::Test
6
+ alias :assert_raise :assert_raises
7
+ alias :assert_not_nil :refute_nil
8
+
9
+ def assert_nothing_raised
10
+ yield
11
+ end
12
+ end
13
+ end
data/test/performance.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  # encoding: iso-8859-1
3
4
 
4
5
  #--
@@ -14,7 +15,7 @@
14
15
  require 'builder/xmlmarkup'
15
16
  require 'benchmark'
16
17
 
17
- text = "This is a test of the new xml markup. Itrntinliztin\n" * 10000
18
+ text = "This is a test of the new xml markup. I�t�rn�ti�n�liz�ti�n\n" * 10000
18
19
 
19
20
  include Benchmark # we need the CAPTION and FMTSTR constants
20
21
  include Builder
data/test/preload.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -10,8 +11,8 @@
10
11
  # above copyright notice is included.
11
12
  #++
12
13
 
13
- require 'test/unit'
14
- require 'test/preload'
14
+ require 'helper'
15
+ require 'preload'
15
16
  require 'blankslate'
16
17
  require 'stringio'
17
18
 
@@ -46,10 +47,6 @@ module Kernel
46
47
  1234
47
48
  end
48
49
 
49
- def double_late_addition
50
- 11
51
- end
52
-
53
50
  def double_late_addition
54
51
  22
55
52
  end
@@ -80,7 +77,7 @@ end
80
77
  ######################################################################
81
78
  # Test case for blank slate.
82
79
  #
83
- class TestBlankSlate < Test::Unit::TestCase
80
+ class TestBlankSlate < Builder::Test
84
81
  def setup
85
82
  @bs = BlankSlate.new
86
83
  end
@@ -108,12 +105,6 @@ class TestBlankSlate < Test::Unit::TestCase
108
105
  end
109
106
  end
110
107
 
111
- def test_targetted_private_methods_are_undefined_during_instance_eval
112
- assert_raise(NoMethodError, NameError) do
113
- @bs.instance_eval do self.puts "HI" end
114
- end
115
- end
116
-
117
108
  def test_untargetted_private_methods_are_defined_during_instance_eval
118
109
  oldstdout = $stdout
119
110
  $stdout = StringIO.new
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -10,12 +11,12 @@
10
11
  # above copyright notice is included.
11
12
  #++
12
13
 
13
- require 'test/unit'
14
- require 'test/preload'
14
+ require 'helper'
15
+ require 'preload'
15
16
  require 'builder'
16
17
  require 'builder/xmlevents'
17
18
 
18
- class TestEvents < Test::Unit::TestCase
19
+ class TestEvents < Builder::Test
19
20
 
20
21
  class Target
21
22
  attr_reader :events
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -10,12 +11,12 @@
10
11
  # above copyright notice is included.
11
12
  #++
12
13
 
13
- require 'test/unit'
14
- require 'test/preload'
14
+ require 'helper'
15
+ require 'preload'
15
16
  require 'builder'
16
17
  require 'builder/xmlmarkup'
17
18
 
18
- class TestMarkup < Test::Unit::TestCase
19
+ class TestMarkup < Builder::Test
19
20
  def setup
20
21
  @xml = Builder::XmlMarkup.new
21
22
  end
@@ -79,7 +80,7 @@ class TestMarkup < Test::Unit::TestCase
79
80
  assert_equal %{<ref id="H&amp;R"/>}, @xml.target!
80
81
  end
81
82
 
82
- def test_symbol_attributes_are_unescaped_by_default
83
+ def test_symbol_attributes_are_unescaped_by_default
83
84
  @xml.ref(:id => :"H&amp;R")
84
85
  assert_equal %{<ref id="H&amp;R"/>}, @xml.target!
85
86
  end
@@ -144,7 +145,7 @@ class TestMarkup < Test::Unit::TestCase
144
145
  end
145
146
 
146
147
  def test_reference_methods
147
- @xml.title { |x| x.a { x.b(name) } }
148
+ @xml.title { |x| x.a { x.b(_name) } }
148
149
  assert_equal "<title><a><b>bob</b></a></title>", @xml.target!
149
150
  end
150
151
 
@@ -205,12 +206,12 @@ class TestMarkup < Test::Unit::TestCase
205
206
  assert_equal "<div><span><a href=\"ref\">text</a></span></div>", @xml.target!
206
207
  end
207
208
 
208
- def name
209
+ def _name
209
210
  "bob"
210
211
  end
211
212
  end
212
213
 
213
- class TestAttributeEscaping < Test::Unit::TestCase
214
+ class TestAttributeEscaping < Builder::Test
214
215
 
215
216
  def setup
216
217
  @xml = Builder::XmlMarkup.new
@@ -248,7 +249,7 @@ class TestAttributeEscaping < Test::Unit::TestCase
248
249
 
249
250
  end
250
251
 
251
- class TestNameSpaces < Test::Unit::TestCase
252
+ class TestNameSpaces < Builder::Test
252
253
  def setup
253
254
  @xml = Builder::XmlMarkup.new(:indent=>2)
254
255
  end
@@ -300,7 +301,7 @@ class TestNameSpaces < Test::Unit::TestCase
300
301
  end
301
302
  end
302
303
 
303
- class TestDeclarations < Test::Unit::TestCase
304
+ class TestDeclarations < Builder::Test
304
305
  def setup
305
306
  @xml = Builder::XmlMarkup.new(:indent=>2)
306
307
  end
@@ -357,7 +358,7 @@ class TestDeclarations < Test::Unit::TestCase
357
358
  end
358
359
 
359
360
 
360
- class TestSpecialMarkup < Test::Unit::TestCase
361
+ class TestSpecialMarkup < Builder::Test
361
362
  def setup
362
363
  @xml = Builder::XmlMarkup.new(:indent=>2)
363
364
  end
@@ -417,6 +418,11 @@ class TestSpecialMarkup < Test::Unit::TestCase
417
418
  assert_equal "<![CDATA[TEST]]>\n", @xml.target!
418
419
  end
419
420
 
421
+ def test_cdata_value
422
+ @xml.cdata_value!("content:encoded", "<p>TEST</p>")
423
+ assert_equal "<content:encoded><![CDATA[<p>TEST</p>]]></content:encoded>\n", @xml.target!
424
+ end
425
+
420
426
  def test_cdata_with_ampersand
421
427
  @xml.cdata!("TEST&CHECK")
422
428
  assert_equal "<![CDATA[TEST&CHECK]]>\n", @xml.target!
@@ -428,7 +434,7 @@ class TestSpecialMarkup < Test::Unit::TestCase
428
434
  end
429
435
  end
430
436
 
431
- class TestIndentedXmlMarkup < Test::Unit::TestCase
437
+ class TestIndentedXmlMarkup < Builder::Test
432
438
  def setup
433
439
  @xml = Builder::XmlMarkup.new(:indent=>2)
434
440
  end
@@ -452,7 +458,7 @@ class TestIndentedXmlMarkup < Test::Unit::TestCase
452
458
  assert_equal " <name>\n <first>Jim</first>\n </name>\n", @xml.target!
453
459
  end
454
460
 
455
- class TestUtfMarkup < Test::Unit::TestCase
461
+ class TestUtfMarkup < Builder::Test
456
462
  if ! String.method_defined?(:encode)
457
463
  def setup
458
464
  @old_kcode = $KCODE
@@ -499,7 +505,7 @@ class TestIndentedXmlMarkup < Test::Unit::TestCase
499
505
  $KCODE = encoding
500
506
  string
501
507
  elsif encoding == 'UTF8'
502
- string.force_encoding('UTF-8')
508
+ string.dup.force_encoding('UTF-8')
503
509
  else
504
510
  string
505
511
  end
@@ -540,7 +546,7 @@ class TestIndentedXmlMarkup < Test::Unit::TestCase
540
546
  end
541
547
  end
542
548
 
543
- class TestXmlEvents < Test::Unit::TestCase
549
+ class TestXmlEvents < Builder::Test
544
550
  def setup
545
551
  @handler = EventHandler.new
546
552
  @xe = Builder::XmlEvents.new(:target=>@handler)
@@ -580,7 +586,7 @@ class TestIndentedXmlMarkup < Test::Unit::TestCase
580
586
  end
581
587
 
582
588
  def pop_text
583
- result = ''
589
+ result = ''.dup
584
590
  while ! @handler.events.empty? && @handler.events[0][0] == :text
585
591
  result << @handler.events[0][1]
586
592
  @handler.events.shift
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2011 by Bart ten Brinke (info@retrosync.com).
@@ -9,11 +10,11 @@
9
10
  # above copyright notice is included.
10
11
  #++
11
12
 
12
- require 'test/unit'
13
- require 'test/preload'
13
+ require 'helper'
14
+ require 'preload'
14
15
  require 'builder'
15
16
 
16
- class TestMethodCaching < Test::Unit::TestCase
17
+ class TestMethodCaching < Builder::Test
17
18
 
18
19
  # We can directly ask if xml object responds to the cache_me or
19
20
  # do_not_cache_me methods because xml is derived from BasicObject
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  #--
4
5
  # Portions copyright 2004 by Jim Weirich (jim@weirichhouse.org).
@@ -10,10 +11,10 @@
10
11
  # above copyright notice is included.
11
12
  #++
12
13
 
13
- require 'test/unit'
14
+ require 'helper'
14
15
  require 'builder/xchar'
15
16
 
16
- class TestNameCollisions < Test::Unit::TestCase
17
+ class TestNameCollisions < Builder::Test
17
18
  module Collide
18
19
  def xchr
19
20
  end
data/test/test_xchar.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
  # encoding: us-ascii
3
4
 
4
5
  #--
@@ -13,7 +14,7 @@
13
14
 
14
15
  #!/usr/bin/env ruby
15
16
 
16
- require 'test/unit'
17
+ require 'helper'
17
18
  require 'builder/xchar'
18
19
 
19
20
  if String.method_defined?(:encode)
@@ -22,9 +23,9 @@ if String.method_defined?(:encode)
22
23
 
23
24
  # shim method for testing purposes
24
25
  def to_xs(escape=true)
25
- raise NameError.new('to_xs') unless caller[0].index(__FILE__)
26
+ # raise NameError.new('to_xs') unless caller[0].index(__FILE__)
26
27
 
27
- result = Builder::XChar.encode(self)
28
+ result = Builder::XChar.encode(self.dup)
28
29
  if escape
29
30
  result.gsub(/[^\u0000-\u007F]/) {|c| "&##{c.ord};"}
30
31
  else
@@ -35,7 +36,7 @@ if String.method_defined?(:encode)
35
36
  end
36
37
  end
37
38
 
38
- class TestXmlEscaping < Test::Unit::TestCase
39
+ class TestXmlEscaping < Builder::Test
39
40
  REPLACEMENT_CHAR = Builder::XChar::REPLACEMENT_CHAR.to_xs
40
41
 
41
42
  def test_ascii
@@ -70,9 +71,15 @@ class TestXmlEscaping < Test::Unit::TestCase
70
71
  end
71
72
 
72
73
  def test_utf8_verbatim
73
- assert_equal "\xE2\x80\x99", "\xE2\x80\x99".to_xs(false) # right single quote
74
- assert_equal "\xC2\xA9", "\xC2\xA9".to_xs(false) # copy
75
- assert_equal "\xC2\xA9&amp;\xC2\xA9",
76
- "\xC2\xA9&\xC2\xA9".to_xs(false) # copy with ampersand
74
+ assert_equal binary("\xE2\x80\x99"), "\xE2\x80\x99".to_xs(false) # right single quote
75
+ assert_equal binary("\xC2\xA9"), "\xC2\xA9".to_xs(false) # copy
76
+ assert_equal binary("\xC2\xA9&amp;\xC2\xA9"),
77
+ "\xC2\xA9&\xC2\xA9".to_xs(false) # copy with ampersand
78
+ end
79
+
80
+ private
81
+
82
+ def binary(string)
83
+ string.dup.force_encoding(Encoding::BINARY)
77
84
  end
78
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.2
4
+ version: 3.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-01 00:00:00.000000000 Z
11
+ date: 2019-12-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  Builder provides a number of builder objects that make creating structured data
@@ -24,6 +24,8 @@ extra_rdoc_files:
24
24
  - MIT-LICENSE
25
25
  - README.md
26
26
  - Rakefile
27
+ - builder.blurb
28
+ - builder.gemspec
27
29
  - doc/releases/builder-1.2.4.rdoc
28
30
  - doc/releases/builder-2.0.0.rdoc
29
31
  - doc/releases/builder-2.1.1.rdoc
@@ -32,6 +34,8 @@ files:
32
34
  - MIT-LICENSE
33
35
  - README.md
34
36
  - Rakefile
37
+ - builder.blurb
38
+ - builder.gemspec
35
39
  - doc/jamis.rb
36
40
  - doc/releases/builder-1.2.4.rdoc
37
41
  - doc/releases/builder-2.0.0.rdoc
@@ -44,6 +48,10 @@ files:
44
48
  - lib/builder/xmlbase.rb
45
49
  - lib/builder/xmlevents.rb
46
50
  - lib/builder/xmlmarkup.rb
51
+ - rakelib/publish.rake
52
+ - rakelib/tags.rake
53
+ - rakelib/testing.rake
54
+ - test/helper.rb
47
55
  - test/performance.rb
48
56
  - test/preload.rb
49
57
  - test/test_blankslate.rb
@@ -52,34 +60,31 @@ files:
52
60
  - test/test_method_caching.rb
53
61
  - test/test_namecollision.rb
54
62
  - test/test_xchar.rb
55
- - rakelib/publish.rake
56
- - rakelib/tags.rake
57
63
  homepage: http://onestepback.org
58
64
  licenses:
59
65
  - MIT
60
66
  metadata: {}
61
67
  post_install_message:
62
68
  rdoc_options:
63
- - --title
69
+ - "--title"
64
70
  - Builder -- Easy XML Building
65
- - --main
71
+ - "--main"
66
72
  - README.rdoc
67
- - --line-numbers
73
+ - "--line-numbers"
68
74
  require_paths:
69
75
  - lib
70
76
  required_ruby_version: !ruby/object:Gem::Requirement
71
77
  requirements:
72
- - - '>='
78
+ - - ">="
73
79
  - !ruby/object:Gem::Version
74
80
  version: '0'
75
81
  required_rubygems_version: !ruby/object:Gem::Requirement
76
82
  requirements:
77
- - - '>='
83
+ - - ">="
78
84
  - !ruby/object:Gem::Version
79
85
  version: '0'
80
86
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.0.3
87
+ rubygems_version: 3.1.0.pre3
83
88
  signing_key:
84
89
  specification_version: 4
85
90
  summary: Builders for MarkUp.