builder 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ = Builder 1.2.4 Released.
2
+
3
+ Added a "CDATA" method to the XML Markup builder (from Josh Knowles).
4
+
5
+ == What is Builder?
6
+
7
+ Builder::XmlMarkup allows easy programmatic creation of XML markup.
8
+ For example:
9
+
10
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
11
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
12
+ puts builder.target!
13
+
14
+ will generate:
15
+
16
+ <person>
17
+ <name>Jim</name>
18
+ <phone>555-1234</phone>
19
+ </person>
20
+
21
+ == Availability
22
+
23
+ The easiest way to get and install builder is via RubyGems ...
24
+
25
+ gem install builder (you may need root/admin privileges)
26
+
27
+ == Thanks
28
+
29
+ * Josh Knowles for the cdata! patch.
30
+
31
+ -- Jim Weirich
@@ -0,0 +1,46 @@
1
+ = Builder 2.0.0 Released.
2
+
3
+ == Changes in 2.0.0
4
+
5
+ * UTF-8 characters in data are now correctly translated to their XML
6
+ equivalents. (Thanks to Sam Ruby)
7
+
8
+ * Attribute values are now escaped by default. See the README
9
+ file for details.
10
+
11
+ <b>NOTE:</b> The escaping attribute values by default is different
12
+ than in previous releases of Builder. This makes version 2.0.0
13
+ somewhat incompatible with the 1.x series of Builder. If you use "&",
14
+ "<", or ">" in attributes values, you may have to change your
15
+ code. (Essentially you remove the manual escaping. The new way is
16
+ easier, believe me).
17
+
18
+ == What is Builder?
19
+
20
+ Builder::XmlMarkup is a library that allows easy programmatic creation
21
+ of XML markup. For example:
22
+
23
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
24
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
25
+
26
+ will generate:
27
+
28
+ <person>
29
+ <name>Jim</name>
30
+ <phone>555-1234</phone>
31
+ </person>
32
+
33
+ == Availability
34
+
35
+ The easiest way to get and install builder is via RubyGems ...
36
+
37
+ gem install builder (you may need root/admin privileges)
38
+
39
+ == Thanks
40
+
41
+ * Sam Ruby for the XChar module and the related UTF-8 translation
42
+ tools.
43
+ * Also to Sam Ruby for gently persuading me to start quoting attribute
44
+ values.
45
+
46
+ -- Jim Weirich
@@ -0,0 +1,58 @@
1
+ = Builder 2.1.1 Released.
2
+
3
+ Release 2.1.1 of Builder is mainly a bug fix release.
4
+
5
+ == Changes in 2.1.1
6
+
7
+ * Added <tt>reveal</tt> capability to BlankSlate.
8
+
9
+ * Fixed a bug in BlankSlate where including a module into Object could
10
+ cause methods to leak into BlankSlate.
11
+
12
+ * Fixed typo in XmlMarkup class docs (from Martin Fowler).
13
+
14
+ * Fixed test on private methods to differentiate between targetted and
15
+ untargetted private methods.
16
+
17
+ * Removed legacy capture of @self in XmlBase (@self was used back when
18
+ we used instance eval).
19
+
20
+ * Added additional tests for global functions (both direct and
21
+ included).
22
+
23
+ * Several misc internal cleanups, including rearranging the source
24
+ code tree.
25
+
26
+ <b>NOTE:</b> The escaping attribute values by default is different
27
+ than in previous releases of Builder. This makes version 2.0.x
28
+ somewhat incompatible with the 1.x series of Builder. If you use "&",
29
+ "<", or ">" in attributes values, you may have to change your
30
+ code. (Essentially you remove the manual escaping. The new way is
31
+ easier, believe me).
32
+
33
+ == What is Builder?
34
+
35
+ Builder::XmlMarkup is a library that allows easy programmatic creation
36
+ of XML markup. For example:
37
+
38
+ builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
39
+ builder.person { |b| b.name("Jim"); b.phone("555-1234") }
40
+
41
+ will generate:
42
+
43
+ <person>
44
+ <name>Jim</name>
45
+ <phone>555-1234</phone>
46
+ </person>
47
+
48
+ == Availability
49
+
50
+ The easiest way to get and install builder is via RubyGems ...
51
+
52
+ gem install builder (you may need root/admin privileges)
53
+
54
+ == Thanks
55
+
56
+ * Martin Fowler for spotting some typos in the documentation.
57
+
58
+ -- Jim Weirich
@@ -2,7 +2,7 @@ module Builder
2
2
  VERSION_NUMBERS = [
3
3
  VERSION_MAJOR = 3,
4
4
  VERSION_MINOR = 2,
5
- VERSION_BUILD = 0,
5
+ VERSION_BUILD = 1,
6
6
  ]
7
7
  VERSION = VERSION_NUMBERS.join(".")
8
8
  end
@@ -0,0 +1,17 @@
1
+ # Optional publish task for Rake
2
+
3
+ require 'rake/contrib/sshpublisher'
4
+ require 'rake/contrib/rubyforgepublisher'
5
+
6
+ publisher = Rake::CompositePublisher.new
7
+ publisher.add Rake::RubyForgePublisher.new('builder', 'jimweirich')
8
+ publisher.add Rake::SshFilePublisher.new(
9
+ 'linode',
10
+ 'htdocs/software/builder',
11
+ '.',
12
+ 'builder.blurb')
13
+
14
+ desc "Publish the Documentation to RubyForge."
15
+ task :publish => [:rdoc] do
16
+ publisher.upload
17
+ end
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module Tags
4
+ extend Rake::DSL if defined?(Rake::DSL)
5
+
6
+ PROG = ENV['TAGS'] || 'ctags'
7
+
8
+ RAKEFILES = FileList['Rakefile', '**/*.rake']
9
+
10
+ FILES = FileList['**/*.rb', '**/*.js'] + RAKEFILES
11
+ FILES.exclude('pkg', 'dist')
12
+
13
+ PROJECT_DIR = ['.']
14
+
15
+ RVM_GEMDIR = File.join(`rvm gemdir`.strip, "gems")
16
+ SYSTEM_DIRS = File.exists?(RVM_GEMDIR) ? RVM_GEMDIR : []
17
+
18
+ module_function
19
+
20
+ # Convert key_word to --key-word.
21
+ def keyword(key)
22
+ k = key.to_s.gsub(/_/, '-')
23
+ (k.length == 1) ? "-#{k}" : "--#{k}"
24
+ end
25
+
26
+ # Run ctags command
27
+ def run(*args)
28
+ opts = {
29
+ :e => true,
30
+ :totals => true,
31
+ :recurse => true,
32
+ }
33
+ opts = opts.merge(args.pop) if args.last.is_a?(Hash)
34
+ command_args = opts.map { |k, v|
35
+ (v == true) ? keyword(k) : "#{keyword(k)}=#{v}"
36
+ }.join(" ")
37
+ sh %{#{Tags::PROG} #{command_args} #{args.join(' ')}}
38
+ end
39
+ end
40
+
41
+ namespace "tags" do
42
+ desc "Generate an Emacs TAGS file"
43
+ task :emacs, [:all] => Tags::FILES do |t, args|
44
+ puts "Making Emacs TAGS file"
45
+ verbose(true) do
46
+ Tags.run(Tags::PROJECT_DIR)
47
+ Tags.run(Tags::RAKEFILES,
48
+ :language_force => "ruby",
49
+ :append => true)
50
+ if args.all
51
+ Tags::SYSTEM_DIRS.each do |dir|
52
+ Tags.run(dir,
53
+ :language_force => "ruby",
54
+ :append => true)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+ desc "Generate the TAGS file"
62
+ task :tags, [:all] => ["tags:emacs"]
metadata CHANGED
@@ -1,38 +1,40 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: builder
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.2.1
5
5
  prerelease:
6
- segments:
7
- - 3
8
- - 2
9
- - 0
10
- version: 3.2.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jim Weirich
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-02-23 00:00:00 Z
12
+ date: 2013-05-30 00:00:00.000000000 Z
19
13
  dependencies: []
14
+ description: ! 'Builder provides a number of builder objects that make creating structured
15
+ data
20
16
 
21
- description: |
22
- Builder provides a number of builder objects that make creating structured data
23
17
  simple to do. Currently the following builder objects are supported:
24
-
18
+
19
+
25
20
  * XML Markup
21
+
26
22
  * XML Events
27
23
 
24
+ '
28
25
  email: jim.weirich@gmail.com
29
26
  executables: []
30
-
31
27
  extensions: []
32
-
33
28
  extra_rdoc_files: []
34
-
35
- files:
29
+ files:
30
+ - CHANGES
31
+ - MIT-LICENSE
32
+ - README.md
33
+ - Rakefile
34
+ - doc/jamis.rb
35
+ - doc/releases/builder-1.2.4.rdoc
36
+ - doc/releases/builder-2.0.0.rdoc
37
+ - doc/releases/builder-2.1.1.rdoc
36
38
  - lib/blankslate.rb
37
39
  - lib/builder.rb
38
40
  - lib/builder/blankslate.rb
@@ -49,44 +51,39 @@ files:
49
51
  - test/test_method_caching.rb
50
52
  - test/test_namecollision.rb
51
53
  - test/test_xchar.rb
54
+ - rakelib/publish.rake
55
+ - rakelib/tags.rake
52
56
  homepage: http://onestepback.org
53
- licenses:
57
+ licenses:
54
58
  - MIT
55
59
  post_install_message:
56
- rdoc_options:
60
+ rdoc_options:
57
61
  - --title
58
62
  - Builder -- Easy XML Building
59
63
  - --main
60
64
  - README.rdoc
61
65
  - --line-numbers
62
- require_paths:
66
+ require_paths:
63
67
  - lib
64
- required_ruby_version: !ruby/object:Gem::Requirement
68
+ required_ruby_version: !ruby/object:Gem::Requirement
65
69
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- hash: 3
70
- segments:
71
- - 0
72
- version: "0"
73
- required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
75
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
82
80
  requirements: []
83
-
84
81
  rubyforge_project:
85
82
  rubygems_version: 1.8.24
86
83
  signing_key:
87
84
  specification_version: 3
88
85
  summary: Builders for MarkUp.
89
- test_files:
86
+ test_files:
90
87
  - test/test_blankslate.rb
91
88
  - test/test_eventbuilder.rb
92
89
  - test/test_markupbuilder.rb