pdf-labels 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|