pdf-labels 1.0.0 → 1.0.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/History.txt +3 -0
- data/Manifest.txt +41 -64
- data/README.txt +4 -3
- data/lib/pdf_labels.rb +1 -4
- data/test/test_pdf_label_page.rb +6 -6
- data/vendor/transaction/simple.rb +390 -597
- data/vendor/transaction/simple/group.rb +13 -0
- data/vendor/transaction/simple/threadsafe.rb +18 -2
- data/vendor/transaction/simple/threadsafe/group.rb +13 -0
- data/vendor/{xml-mapping → xml}/LICENSE +0 -0
- data/vendor/{xml-mapping → xml}/README +0 -0
- data/vendor/{xml-mapping/lib/xml → xml}/mapping.rb +0 -0
- data/vendor/{xml-mapping/lib/xml → xml}/mapping/base.rb +0 -0
- data/vendor/{xml-mapping/lib/xml → xml}/mapping/standard_nodes.rb +0 -0
- data/vendor/{xml-mapping/lib/xml → xml}/mapping/version.rb +0 -0
- data/vendor/{xml-mapping/lib/xml → xml}/xxpath.rb +0 -0
- metadata +46 -71
- data/vendor/xml-mapping/ChangeLog +0 -128
- data/vendor/xml-mapping/README_XPATH +0 -175
- data/vendor/xml-mapping/Rakefile +0 -214
- data/vendor/xml-mapping/TODO.txt +0 -32
- data/vendor/xml-mapping/doc/xpath_impl_notes.txt +0 -119
- data/vendor/xml-mapping/examples/company.rb +0 -34
- data/vendor/xml-mapping/examples/company.xml +0 -26
- data/vendor/xml-mapping/examples/company_usage.intin.rb +0 -19
- data/vendor/xml-mapping/examples/company_usage.intout +0 -39
- data/vendor/xml-mapping/examples/order.rb +0 -61
- data/vendor/xml-mapping/examples/order.xml +0 -54
- data/vendor/xml-mapping/examples/order_signature_enhanced.rb +0 -7
- data/vendor/xml-mapping/examples/order_signature_enhanced.xml +0 -9
- data/vendor/xml-mapping/examples/order_signature_enhanced_usage.intin.rb +0 -12
- data/vendor/xml-mapping/examples/order_signature_enhanced_usage.intout +0 -16
- data/vendor/xml-mapping/examples/order_usage.intin.rb +0 -73
- data/vendor/xml-mapping/examples/order_usage.intout +0 -147
- data/vendor/xml-mapping/examples/time_augm.intin.rb +0 -19
- data/vendor/xml-mapping/examples/time_augm.intout +0 -23
- data/vendor/xml-mapping/examples/time_node.rb +0 -27
- data/vendor/xml-mapping/examples/xpath_create_new.intin.rb +0 -85
- data/vendor/xml-mapping/examples/xpath_create_new.intout +0 -181
- data/vendor/xml-mapping/examples/xpath_docvsroot.intin.rb +0 -30
- data/vendor/xml-mapping/examples/xpath_docvsroot.intout +0 -34
- data/vendor/xml-mapping/examples/xpath_ensure_created.intin.rb +0 -62
- data/vendor/xml-mapping/examples/xpath_ensure_created.intout +0 -114
- data/vendor/xml-mapping/examples/xpath_pathological.intin.rb +0 -42
- data/vendor/xml-mapping/examples/xpath_pathological.intout +0 -56
- data/vendor/xml-mapping/examples/xpath_usage.intin.rb +0 -51
- data/vendor/xml-mapping/examples/xpath_usage.intout +0 -57
- data/vendor/xml-mapping/install.rb +0 -40
- data/vendor/xml-mapping/test/all_tests.rb +0 -6
- data/vendor/xml-mapping/test/company.rb +0 -56
- data/vendor/xml-mapping/test/documents_folders.rb +0 -33
- data/vendor/xml-mapping/test/fixtures/bookmarks1.xml +0 -24
- data/vendor/xml-mapping/test/fixtures/company1.xml +0 -85
- data/vendor/xml-mapping/test/fixtures/documents_folders.xml +0 -71
- data/vendor/xml-mapping/test/fixtures/documents_folders2.xml +0 -30
- data/vendor/xml-mapping/test/multiple_mappings.rb +0 -80
- data/vendor/xml-mapping/test/tests_init.rb +0 -2
- data/vendor/xml-mapping/test/xml_mapping_adv_test.rb +0 -84
- data/vendor/xml-mapping/test/xml_mapping_test.rb +0 -201
- data/vendor/xml-mapping/test/xpath_test.rb +0 -273
@@ -1,24 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
|
-
<folder1 name="root" last-changed="123">
|
4
|
-
<entries1>
|
5
|
-
<bookmark1 bmname="ruby" bmlast-changed="345">
|
6
|
-
<url>http://www.ruby-lang.org</url>
|
7
|
-
</bookmark1>
|
8
|
-
|
9
|
-
<bookmark1 bmname="RAA">
|
10
|
-
<url>http://raa.ruby-lang.org/</url>
|
11
|
-
</bookmark1>
|
12
|
-
|
13
|
-
<folder1 name="news">
|
14
|
-
<entries1>
|
15
|
-
<bookmark1 bmname="/." bmlast-changed="233">
|
16
|
-
<url>http://www.slashdot.org/</url>
|
17
|
-
</bookmark1>
|
18
|
-
<bookmark1 bmname="groklaw" bmlast-changed="238">
|
19
|
-
<url>http://www.groklaw.net/</url>
|
20
|
-
</bookmark1>
|
21
|
-
</entries1>
|
22
|
-
</folder1>
|
23
|
-
</entries1>
|
24
|
-
</folder1>
|
@@ -1,85 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
|
-
<company name="ACME inc.">
|
4
|
-
|
5
|
-
<address>
|
6
|
-
<city>Berlin</city>
|
7
|
-
<zip>10176</zip>
|
8
|
-
<street>Unter den Linden</street>
|
9
|
-
<number>12</number>
|
10
|
-
</address>
|
11
|
-
|
12
|
-
<offices>
|
13
|
-
<office speciality="pencils">
|
14
|
-
<classified>no</classified>
|
15
|
-
<address>
|
16
|
-
<city>Hamburg</city>
|
17
|
-
<zip>18282</zip>
|
18
|
-
<street>Feldweg</street>
|
19
|
-
<number>28</number>
|
20
|
-
</address>
|
21
|
-
</office>
|
22
|
-
<office speciality="weapons of mass destruction">
|
23
|
-
<classified>yes</classified>
|
24
|
-
<address>
|
25
|
-
<city>Baghdad</city>
|
26
|
-
<street>Airport</street>
|
27
|
-
<number>18</number>
|
28
|
-
</address>
|
29
|
-
</office>
|
30
|
-
</offices>
|
31
|
-
|
32
|
-
|
33
|
-
<customers>
|
34
|
-
|
35
|
-
<customer uid="jim">
|
36
|
-
<name>James Kirk</name>
|
37
|
-
<payment_method>cash</payment_method>
|
38
|
-
</customer>
|
39
|
-
|
40
|
-
<customer uid="ernie">
|
41
|
-
<name>Ernie</name>
|
42
|
-
<payment_method>sweeties</payment_method>
|
43
|
-
</customer>
|
44
|
-
|
45
|
-
<customer uid="cm">
|
46
|
-
<name>Cookie Monster</name>
|
47
|
-
<payment_method>cookies</payment_method>
|
48
|
-
</customer>
|
49
|
-
|
50
|
-
<customer uid="sad">
|
51
|
-
<name>Saddam Hussein</name>
|
52
|
-
<payment_method>independent arms broker</payment_method>
|
53
|
-
</customer>
|
54
|
-
|
55
|
-
</customers>
|
56
|
-
|
57
|
-
|
58
|
-
<arrtest>
|
59
|
-
<entry>foo</entry>
|
60
|
-
<entry>bar</entry>
|
61
|
-
<entry>baz</entry>
|
62
|
-
</arrtest>
|
63
|
-
|
64
|
-
|
65
|
-
<stuff>
|
66
|
-
<customer uid="sad">
|
67
|
-
<name>Saddam Hussein</name>
|
68
|
-
<payment_method>independent arms broker</payment_method>
|
69
|
-
</customer>
|
70
|
-
<address>
|
71
|
-
<city>Berlin</city>
|
72
|
-
<zip>10176</zip>
|
73
|
-
<street>Unter den Linden</street>
|
74
|
-
<number>12</number>
|
75
|
-
</address>
|
76
|
-
<office speciality="weapons of mass destruction">
|
77
|
-
<classified>yes</classified>
|
78
|
-
<address>
|
79
|
-
<city>Baghdad</city>
|
80
|
-
<street>Airport</street>
|
81
|
-
<number>18</number>
|
82
|
-
</address>
|
83
|
-
</office>
|
84
|
-
</stuff>
|
85
|
-
</company>
|
@@ -1,71 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
|
-
|
4
|
-
<folder>
|
5
|
-
<name>home</name>
|
6
|
-
|
7
|
-
<entries>
|
8
|
-
<document>
|
9
|
-
<name>plan</name>
|
10
|
-
<contents>
|
11
|
-
inhale, exhale
|
12
|
-
eat, drink, sleep
|
13
|
-
</contents>
|
14
|
-
</document>
|
15
|
-
|
16
|
-
<folder>
|
17
|
-
<name>work</name>
|
18
|
-
|
19
|
-
<entries>
|
20
|
-
<folder>
|
21
|
-
<name>xml-mapping</name>
|
22
|
-
|
23
|
-
<entries>
|
24
|
-
<document>
|
25
|
-
<name>README</name>
|
26
|
-
<contents>
|
27
|
-
XML-MAPPING: XML-to-object (and back) mapper
|
28
|
-
for Ruby, including XPath interpreter
|
29
|
-
</contents>
|
30
|
-
</document>
|
31
|
-
<document>
|
32
|
-
<name>Rakefile</name>
|
33
|
-
<contents>
|
34
|
-
rake away
|
35
|
-
</contents>
|
36
|
-
</document>
|
37
|
-
</entries>
|
38
|
-
</folder>
|
39
|
-
|
40
|
-
<document>
|
41
|
-
<name>schedule</name>
|
42
|
-
<contents>
|
43
|
-
12:00 AM lunch
|
44
|
-
4:00 PM appointment
|
45
|
-
</contents>
|
46
|
-
</document>
|
47
|
-
</entries>
|
48
|
-
</folder>
|
49
|
-
|
50
|
-
|
51
|
-
<folder>
|
52
|
-
<name>books</name>
|
53
|
-
|
54
|
-
<entries>
|
55
|
-
<document>
|
56
|
-
<name>The Hitchhiker's Guide to the Galaxy</name>
|
57
|
-
<contents>
|
58
|
-
The Answer to Life, the Universe, and Everything
|
59
|
-
</contents>
|
60
|
-
</document>
|
61
|
-
<document>
|
62
|
-
<name>Programming Ruby</name>
|
63
|
-
<contents>
|
64
|
-
The Pragmatic Programmer's Guide
|
65
|
-
</contents>
|
66
|
-
</document>
|
67
|
-
</entries>
|
68
|
-
</folder>
|
69
|
-
|
70
|
-
</entries>
|
71
|
-
</folder>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
|
-
<folder>
|
4
|
-
<name>home</name>
|
5
|
-
|
6
|
-
<entries>
|
7
|
-
<document>
|
8
|
-
<name>plan</name>
|
9
|
-
<contents> inhale, exhale</contents>
|
10
|
-
</document>
|
11
|
-
|
12
|
-
<folder>
|
13
|
-
<name>work</name>
|
14
|
-
|
15
|
-
<entries>
|
16
|
-
<folder>
|
17
|
-
<name>xml-mapping</name>
|
18
|
-
|
19
|
-
<entries>
|
20
|
-
<document>
|
21
|
-
<name>README</name>
|
22
|
-
<contents>foo bar baz</contents>
|
23
|
-
</document>
|
24
|
-
</entries>
|
25
|
-
</folder>
|
26
|
-
</entries>
|
27
|
-
</folder>
|
28
|
-
|
29
|
-
</entries>
|
30
|
-
</folder>
|
@@ -1,80 +0,0 @@
|
|
1
|
-
class BMNode
|
2
|
-
attr_accessor :name
|
3
|
-
|
4
|
-
def name=(x)
|
5
|
-
@name_set="#{x}_set"
|
6
|
-
@name=x
|
7
|
-
end
|
8
|
-
|
9
|
-
def name
|
10
|
-
@name_get="#{@name}_get"
|
11
|
-
@name
|
12
|
-
end
|
13
|
-
|
14
|
-
attr_reader :name_set, :name_get
|
15
|
-
|
16
|
-
attr_accessor :last_changed
|
17
|
-
|
18
|
-
def ==(other)
|
19
|
-
other.name==self.name and
|
20
|
-
other.last_changed==self.last_changed
|
21
|
-
end
|
22
|
-
|
23
|
-
def initialize
|
24
|
-
yield(self) if block_given?
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class BMFolder < BMNode
|
29
|
-
attr_accessor :entries
|
30
|
-
|
31
|
-
def ==(other)
|
32
|
-
super(other) and
|
33
|
-
self.entries == other.entries
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class BM < BMNode
|
38
|
-
attr_accessor :url
|
39
|
-
attr_accessor :refinement
|
40
|
-
|
41
|
-
def ==(other)
|
42
|
-
super(other) and
|
43
|
-
self.url == other.url and
|
44
|
-
self.refinement == other.refinement
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
require 'xml/mapping'
|
51
|
-
|
52
|
-
module Mapping1
|
53
|
-
class BMFolderMapping < BMFolder
|
54
|
-
include XML::Mapping
|
55
|
-
|
56
|
-
root_element_name 'folder1'
|
57
|
-
|
58
|
-
text_node :name, "@name"
|
59
|
-
numeric_node :last_changed, "@last-changed", :default_value=>nil
|
60
|
-
|
61
|
-
array_node :entries, "entries1", "*"
|
62
|
-
end
|
63
|
-
|
64
|
-
class BMMapping < BM
|
65
|
-
include XML::Mapping
|
66
|
-
|
67
|
-
root_element_name 'bookmark1'
|
68
|
-
|
69
|
-
text_node :name, "@bmname"
|
70
|
-
numeric_node :last_changed, "@bmlast-changed", :default_value=>nil
|
71
|
-
|
72
|
-
text_node :url, "url"
|
73
|
-
object_node :refinement, "refinement", :default_value=>nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
|
-
module Mapping2
|
79
|
-
# TODO
|
80
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__)+"/tests_init"
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'documents_folders'
|
5
|
-
require 'multiple_mappings'
|
6
|
-
require 'yaml'
|
7
|
-
|
8
|
-
class XmlMappingAdvancedTest < Test::Unit::TestCase
|
9
|
-
def setup
|
10
|
-
@f_xml = REXML::Document.new(File.new(File.dirname(__FILE__) + "/fixtures/documents_folders2.xml"))
|
11
|
-
@f = XML::Mapping.load_object_from_xml(@f_xml.root)
|
12
|
-
|
13
|
-
@bm1_xml = REXML::Document.new(File.new(File.dirname(__FILE__) + "/fixtures/bookmarks1.xml"))
|
14
|
-
@bm1 = XML::Mapping.load_object_from_xml(@bm1_xml.root)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_read_polymorphic_object
|
18
|
-
assert_equal YAML::load(<<-EOS), @f
|
19
|
-
--- !ruby/object:Folder
|
20
|
-
entries:
|
21
|
-
- !ruby/object:Document
|
22
|
-
contents: " inhale, exhale"
|
23
|
-
name: plan
|
24
|
-
- !ruby/object:Folder
|
25
|
-
entries:
|
26
|
-
- !ruby/object:Folder
|
27
|
-
entries:
|
28
|
-
- !ruby/object:Document
|
29
|
-
contents: foo bar baz
|
30
|
-
name: README
|
31
|
-
name: xml-mapping
|
32
|
-
name: work
|
33
|
-
name: home
|
34
|
-
EOS
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
def test_read_bookmars1_2
|
39
|
-
expected = BMFolder.new{|x|
|
40
|
-
x.name = "root"
|
41
|
-
x.last_changed = 123
|
42
|
-
x.entries = [
|
43
|
-
BM.new{|x|
|
44
|
-
x.name="ruby"
|
45
|
-
x.last_changed=345
|
46
|
-
x.url="http://www.ruby-lang.org"
|
47
|
-
x.refinement=nil
|
48
|
-
},
|
49
|
-
BM.new{|x|
|
50
|
-
x.name="RAA"
|
51
|
-
x.last_changed=nil
|
52
|
-
x.url="http://raa.ruby-lang.org/"
|
53
|
-
x.refinement=nil
|
54
|
-
},
|
55
|
-
BMFolder.new{|x|
|
56
|
-
x.name="news"
|
57
|
-
x.last_changed=nil
|
58
|
-
x.entries = [
|
59
|
-
BM.new{|x|
|
60
|
-
x.name="/."
|
61
|
-
x.last_changed=233
|
62
|
-
x.url="http://www.slashdot.org/"
|
63
|
-
x.refinement=nil
|
64
|
-
},
|
65
|
-
BM.new{|x|
|
66
|
-
x.name="groklaw"
|
67
|
-
x.last_changed=238
|
68
|
-
x.url="http://www.groklaw.net/"
|
69
|
-
x.refinement=nil
|
70
|
-
}
|
71
|
-
]
|
72
|
-
}
|
73
|
-
]
|
74
|
-
}
|
75
|
-
# need to compare expected==@bm1 because @bm1.== would be the
|
76
|
-
# XML::Mapping#== defined in xml_mapping_test.rb ...
|
77
|
-
assert_equal expected, @bm1
|
78
|
-
assert_equal "root_set", @bm1.name_set
|
79
|
-
assert_equal "ruby_set", @bm1.entries[0].name_set
|
80
|
-
@bm1.entries[0].name = "foobar"
|
81
|
-
assert_equal "foobar_set", @bm1.entries[0].name_set
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
@@ -1,201 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__)+"/tests_init"
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'company'
|
5
|
-
|
6
|
-
module XML::Mapping
|
7
|
-
def ==(other)
|
8
|
-
Marshal.dump(self) == Marshal.dump(other)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class XmlMappingTest < Test::Unit::TestCase
|
13
|
-
def setup
|
14
|
-
# need to undo mapping class definitions that may have been
|
15
|
-
# established by other tests (and outlive those tests)
|
16
|
-
|
17
|
-
# this requires some ugly hackery with internal variables
|
18
|
-
XML::Mapping.module_eval <<-EOS
|
19
|
-
Classes_w_default_rootelt_names.clear
|
20
|
-
Classes_w_nondefault_rootelt_names.clear
|
21
|
-
EOS
|
22
|
-
Object.send(:remove_const, "Company")
|
23
|
-
Object.send(:remove_const, "Address")
|
24
|
-
Object.send(:remove_const, "Office")
|
25
|
-
Object.send(:remove_const, "Customer")
|
26
|
-
$".delete "company.rb"
|
27
|
-
$:.unshift File.dirname(__FILE__) # test/unit may have undone this (see test/unit/collector/dir.rb)
|
28
|
-
require 'company'
|
29
|
-
|
30
|
-
@xml = REXML::Document.new(File.new(File.dirname(__FILE__) + "/fixtures/company1.xml"))
|
31
|
-
@c = Company.load_from_xml(@xml.root)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_getter_text_node
|
35
|
-
assert_equal "bar", @c.ent2
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_getter_int_node
|
39
|
-
assert_equal 18, @c.offices[1].address.number
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_getter_boolean_node
|
43
|
-
path=XML::XXPath.new("offices/office[2]/classified")
|
44
|
-
assert_equal(path.first(@xml.root).text == "yes",
|
45
|
-
@c.offices[1].classified)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_getter_hash_node
|
49
|
-
assert_equal 4, @c.customers.keys.size
|
50
|
-
["cm", "ernie", "jim", "sad"].zip(@c.customers.keys.sort).each do |exp,ckey|
|
51
|
-
assert_equal exp, ckey
|
52
|
-
assert_equal exp, @c.customers[ckey].uid
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_getter_array_node
|
57
|
-
assert_equal ["pencils", "weapons of mass destruction"],
|
58
|
-
@c.offices.map{|o|o.speciality}
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
def test_setter_text_node
|
63
|
-
@c.ent2 = "lalala"
|
64
|
-
assert_equal "lalala", REXML::XPath.first(@c.save_to_xml, "arrtest/entry[2]").text
|
65
|
-
end
|
66
|
-
|
67
|
-
|
68
|
-
def test_setter_array_node
|
69
|
-
xml=@c.save_to_xml
|
70
|
-
assert_equal ["pencils", "weapons of mass destruction"],
|
71
|
-
XML::XXPath.new("offices/office/@speciality").all(xml).map{|n|n.text}
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
|
-
def test_setter_hash_node
|
76
|
-
xml=@c.save_to_xml
|
77
|
-
assert_equal @c.customers.keys.sort,
|
78
|
-
XML::XXPath.new("customers/customer/@uid").all(@xml.root).map{|n|n.text}.sort
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
def test_setter_boolean_node
|
83
|
-
@c.offices[0].classified = !@c.offices[0].classified
|
84
|
-
xml=@c.save_to_xml
|
85
|
-
assert_equal @c.offices[0].classified,
|
86
|
-
XML::XXPath.new("offices/office[1]/classified").first(xml).text == "yes"
|
87
|
-
end
|
88
|
-
|
89
|
-
|
90
|
-
def test_root_element
|
91
|
-
assert_equal @c, XML::Mapping.load_object_from_file(File.dirname(__FILE__) + "/fixtures/company1.xml")
|
92
|
-
assert_equal @c, XML::Mapping.load_object_from_xml(@xml.root)
|
93
|
-
|
94
|
-
assert_equal "company", Company.root_element_name
|
95
|
-
assert_equal Company, XML::Mapping.class_for_root_elt_name("company")
|
96
|
-
xml=@c.save_to_xml
|
97
|
-
assert_equal "company", xml.name
|
98
|
-
# Company.root_element_name 'my-test'
|
99
|
-
Company.class_eval <<-EOS
|
100
|
-
root_element_name 'my-test'
|
101
|
-
EOS
|
102
|
-
assert_equal "my-test", Company.root_element_name
|
103
|
-
assert_equal Company, XML::Mapping.class_for_root_elt_name("my-test")
|
104
|
-
assert_nil XML::Mapping.class_for_root_elt_name("company")
|
105
|
-
xml=@c.save_to_xml
|
106
|
-
assert_equal "my-test", xml.name
|
107
|
-
assert_equal "office", @c.offices[0].save_to_xml.name
|
108
|
-
|
109
|
-
assert_raises(XML::MappingError) {
|
110
|
-
XML::Mapping.load_object_from_xml @xml.root
|
111
|
-
}
|
112
|
-
@xml.root.name = 'my-test'
|
113
|
-
assert_equal @c, XML::Mapping.load_object_from_xml(@xml.root)
|
114
|
-
|
115
|
-
# white-box tests
|
116
|
-
assert_equal [["my-test", Company]], XML::Mapping::Classes_w_nondefault_rootelt_names.sort
|
117
|
-
assert_equal [["address", Address], ["customer", Customer], ["office", Office]],
|
118
|
-
XML::Mapping::Classes_w_default_rootelt_names.sort
|
119
|
-
end
|
120
|
-
|
121
|
-
|
122
|
-
def test_optional_flag
|
123
|
-
hamburg_address_path = XML::XXPath.new("offices/office[1]/address")
|
124
|
-
baghdad_address_path = XML::XXPath.new("offices/office[2]/address")
|
125
|
-
hamburg_zip_path = XML::XXPath.new("offices/office[1]/address/zip")
|
126
|
-
baghdad_zip_path = XML::XXPath.new("offices/office[2]/address/zip")
|
127
|
-
|
128
|
-
assert_equal 18282, @c.offices[0].address.zip
|
129
|
-
assert_equal 12576, @c.offices[1].address.zip
|
130
|
-
xml=@c.save_to_xml
|
131
|
-
assert_equal "18282", hamburg_zip_path.first(xml).text
|
132
|
-
assert_nil baghdad_zip_path.first(xml,:allow_nil=>true)
|
133
|
-
@c.offices[1].address.zip = 12577
|
134
|
-
xml=@c.save_to_xml
|
135
|
-
assert_equal "12577", baghdad_zip_path.first(xml).text
|
136
|
-
c2 = Company.load_from_xml(xml)
|
137
|
-
assert_equal 12577, c2.offices[1].address.zip
|
138
|
-
@c.offices[1].address.zip = 12576
|
139
|
-
xml=@c.save_to_xml
|
140
|
-
assert_nil baghdad_zip_path.first(xml,:allow_nil=>true)
|
141
|
-
|
142
|
-
hamburg_address_path.first(xml).delete_element("zip")
|
143
|
-
c3 = Company.load_from_xml(xml)
|
144
|
-
assert_equal 12576, c3.offices[0].address.zip
|
145
|
-
hamburg_address_path.first(xml).delete_element("city")
|
146
|
-
assert_raises(XML::MappingError) {
|
147
|
-
Company.load_from_xml(xml)
|
148
|
-
}
|
149
|
-
end
|
150
|
-
|
151
|
-
|
152
|
-
def test_optional_flag_nodefault
|
153
|
-
hamburg_address_path = XML::XXPath.new("offices/office[1]/address")
|
154
|
-
hamburg_street_path = XML::XXPath.new("offices/office[1]/address/street")
|
155
|
-
|
156
|
-
assert_equal hamburg_street_path.first(@xml.root).text,
|
157
|
-
@c.offices[0].address.street
|
158
|
-
|
159
|
-
hamburg_address_path.first(@xml.root).delete_element("street")
|
160
|
-
c2 = Company.load_from_xml(@xml.root)
|
161
|
-
assert_nil c2.offices[0].address.street
|
162
|
-
|
163
|
-
xml2=c2.save_to_xml
|
164
|
-
assert_nil hamburg_street_path.first(xml2,:allow_nil=>true)
|
165
|
-
end
|
166
|
-
|
167
|
-
|
168
|
-
def test_default_value_identity_on_initialize
|
169
|
-
c = Company.new
|
170
|
-
assert_equal ["default"], c.test_default_value_identity
|
171
|
-
c.test_default_value_identity << "foo"
|
172
|
-
|
173
|
-
c2 = Company.new
|
174
|
-
assert_equal ["default"], c2.test_default_value_identity
|
175
|
-
end
|
176
|
-
|
177
|
-
|
178
|
-
def test_default_value_identity_on_load
|
179
|
-
assert_equal ["default"], @c.test_default_value_identity
|
180
|
-
@c.test_default_value_identity << "bar"
|
181
|
-
|
182
|
-
c2 = Company.load_from_file(File.dirname(__FILE__) + "/fixtures/company1.xml")
|
183
|
-
assert_equal ["default"], c2.test_default_value_identity
|
184
|
-
end
|
185
|
-
|
186
|
-
|
187
|
-
def test_polymorphic_node
|
188
|
-
assert_equal 3, @c.stuff.size
|
189
|
-
assert_equal 'Saddam Hussein', @c.stuff[0].name
|
190
|
-
assert_equal 'Berlin', @c.stuff[1].city
|
191
|
-
assert_equal 'weapons of mass destruction', @c.stuff[2].speciality
|
192
|
-
|
193
|
-
@c.stuff[1].city = 'Munich'
|
194
|
-
@c.stuff[2].classified = false
|
195
|
-
|
196
|
-
xml2=@c.save_to_xml
|
197
|
-
assert_equal 'Munich', xml2.root.elements[5].elements[2].elements[1].text
|
198
|
-
assert_equal 'no', xml2.root.elements[5].elements[3].elements[1].text
|
199
|
-
end
|
200
|
-
|
201
|
-
end
|