representative 0.1.0 → 0.1.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.
- data/.document +2 -4
- data/.gitignore +2 -1
- data/README.markdown +8 -1
- data/Rakefile +11 -8
- data/lib/representative/empty.rb +5 -0
- data/lib/representative/version.rb +3 -0
- data/lib/representative/xml.rb +5 -2
- data/representative.gemspec +7 -5
- data/spec/representative/xml_spec.rb +10 -0
- metadata +4 -3
- data/VERSION +0 -1
data/.document
CHANGED
data/.gitignore
CHANGED
data/README.markdown
CHANGED
@@ -87,10 +87,17 @@ Notice that:
|
|
87
87
|
|
88
88
|
- Representative generates elements for each object-attribute you name (and not the ones you don't).
|
89
89
|
- The structure of the XML mirrors the structure described by the nested Ruby blocks.
|
90
|
-
- Using
|
90
|
+
- Using `list_of!` for a collection attribute generates an "array" element, which plays nicely
|
91
91
|
with most Ruby XML-to-hash converters.
|
92
92
|
- Where a named object-attribute is nil, you get an empty element.
|
93
93
|
|
94
|
+
Installation
|
95
|
+
------------
|
96
|
+
|
97
|
+
Representative is packaged as a Gem, hosted on [gemcutter](http://gemcutter.org/gems/representative). Install with:
|
98
|
+
|
99
|
+
sudo gem install representative --source http://gemcutter.org
|
100
|
+
|
94
101
|
Copyright
|
95
102
|
---------
|
96
103
|
|
data/Rakefile
CHANGED
@@ -2,6 +2,8 @@ require "rubygems"
|
|
2
2
|
require "rake"
|
3
3
|
require "rake/clean"
|
4
4
|
|
5
|
+
require File.dirname(__FILE__) + "/lib/representative/version.rb"
|
6
|
+
|
5
7
|
task :default => :spec
|
6
8
|
|
7
9
|
def with_gem(gem_name, lib = gem_name)
|
@@ -18,6 +20,7 @@ with_gem "jeweler" do
|
|
18
20
|
|
19
21
|
Jeweler::Tasks.new do |gem|
|
20
22
|
gem.name = "representative"
|
23
|
+
gem.version = Representative::VERSION
|
21
24
|
gem.summary = "Builds XML representations of your Ruby objects"
|
22
25
|
gem.email = "mdub@dogbiscuit.org"
|
23
26
|
gem.homepage = "http://github.com/mdub/representative"
|
@@ -42,11 +45,11 @@ Spec::Rake::SpecTask.new(:rcov) do |spec|
|
|
42
45
|
spec.rcov = true
|
43
46
|
end
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
with_gem "yard" do
|
49
|
+
|
50
|
+
YARD::Rake::YardocTask.new(:yardoc) do |t|
|
51
|
+
t.files = FileList['lib/**/*.rb']
|
52
|
+
end
|
53
|
+
CLEAN << "doc"
|
54
|
+
|
55
|
+
end
|
data/lib/representative/xml.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "builder"
|
2
2
|
require "active_support"
|
3
|
+
require "representative/empty"
|
3
4
|
|
4
5
|
module Representative
|
5
6
|
|
@@ -41,8 +42,10 @@ module Representative
|
|
41
42
|
def element!(element_name, value, options, &block)
|
42
43
|
text = content_generator = nil
|
43
44
|
if block && value
|
44
|
-
|
45
|
-
|
45
|
+
unless block == Representative::EMPTY
|
46
|
+
content_generator = Proc.new do
|
47
|
+
block.call(Representative::Xml.new(@xml, value))
|
48
|
+
end
|
46
49
|
end
|
47
50
|
else
|
48
51
|
text = value
|
data/representative.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{representative}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Mike Williams"]
|
12
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-12-02}
|
13
13
|
s.email = %q{mdub@dogbiscuit.org}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -21,10 +21,11 @@ Gem::Specification.new do |s|
|
|
21
21
|
"LICENSE",
|
22
22
|
"README.markdown",
|
23
23
|
"Rakefile",
|
24
|
-
"VERSION",
|
25
24
|
"examples/xml_demo.rb",
|
26
25
|
"init.rb",
|
27
26
|
"lib/representative.rb",
|
27
|
+
"lib/representative/empty.rb",
|
28
|
+
"lib/representative/version.rb",
|
28
29
|
"lib/representative/xml.rb",
|
29
30
|
"representative.gemspec",
|
30
31
|
"spec/representative/xml_spec.rb",
|
@@ -54,3 +55,4 @@ Gem::Specification.new do |s|
|
|
54
55
|
s.add_dependency(%q<activesupport>, [">= 2.2.2"])
|
55
56
|
end
|
56
57
|
end
|
58
|
+
|
@@ -138,6 +138,16 @@ describe Representative::Xml do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
end
|
141
|
+
|
142
|
+
describe "with Representative::Empty" do
|
143
|
+
|
144
|
+
it "generates an empty element" do
|
145
|
+
@subject.vehicle = OpenStruct.new(:year => "1959", :make => "Chevrolet")
|
146
|
+
represent.vehicle(:year => :year, &Representative::EMPTY)
|
147
|
+
resulting_xml.should == %(<vehicle year="1959"/>)
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
141
151
|
|
142
152
|
end
|
143
153
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: representative
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Williams
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-02 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -37,10 +37,11 @@ files:
|
|
37
37
|
- LICENSE
|
38
38
|
- README.markdown
|
39
39
|
- Rakefile
|
40
|
-
- VERSION
|
41
40
|
- examples/xml_demo.rb
|
42
41
|
- init.rb
|
43
42
|
- lib/representative.rb
|
43
|
+
- lib/representative/empty.rb
|
44
|
+
- lib/representative/version.rb
|
44
45
|
- lib/representative/xml.rb
|
45
46
|
- representative.gemspec
|
46
47
|
- spec/representative/xml_spec.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.0
|