xmlconv 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/.gemtest +0 -0
  2. data/History.txt +6 -0
  3. data/LICENSE +339 -0
  4. data/README.txt +29 -0
  5. data/Rakefile +37 -0
  6. data/bin/admin +68 -0
  7. data/bin/xmlconvd +38 -0
  8. data/data/grammar/i2.grammar +73 -0
  9. data/lib/xmlconv/config.rb +61 -0
  10. data/lib/xmlconv/custom/lookandfeel.rb +50 -0
  11. data/lib/xmlconv/i2/address.rb +35 -0
  12. data/lib/xmlconv/i2/date.rb +41 -0
  13. data/lib/xmlconv/i2/document.rb +27 -0
  14. data/lib/xmlconv/i2/header.rb +32 -0
  15. data/lib/xmlconv/i2/order.rb +61 -0
  16. data/lib/xmlconv/i2/parser.rb +23 -0
  17. data/lib/xmlconv/i2/position.rb +45 -0
  18. data/lib/xmlconv/i2/record.rb +11 -0
  19. data/lib/xmlconv/model/address.rb +20 -0
  20. data/lib/xmlconv/model/agreement.rb +10 -0
  21. data/lib/xmlconv/model/bdd.rb +37 -0
  22. data/lib/xmlconv/model/bsr.rb +16 -0
  23. data/lib/xmlconv/model/delivery.rb +15 -0
  24. data/lib/xmlconv/model/delivery_item.rb +24 -0
  25. data/lib/xmlconv/model/document.rb +25 -0
  26. data/lib/xmlconv/model/freetext_container.rb +26 -0
  27. data/lib/xmlconv/model/id_container.rb +22 -0
  28. data/lib/xmlconv/model/invoice.rb +18 -0
  29. data/lib/xmlconv/model/invoice_item.rb +11 -0
  30. data/lib/xmlconv/model/item.rb +19 -0
  31. data/lib/xmlconv/model/item_container.rb +15 -0
  32. data/lib/xmlconv/model/name.rb +27 -0
  33. data/lib/xmlconv/model/part_info.rb +10 -0
  34. data/lib/xmlconv/model/part_info_container.rb +15 -0
  35. data/lib/xmlconv/model/party.rb +20 -0
  36. data/lib/xmlconv/model/party_container.rb +20 -0
  37. data/lib/xmlconv/model/price.rb +10 -0
  38. data/lib/xmlconv/model/price_container.rb +18 -0
  39. data/lib/xmlconv/model/transaction.rb +28 -0
  40. data/lib/xmlconv/state/global.rb +28 -0
  41. data/lib/xmlconv/state/global_predefine.rb +11 -0
  42. data/lib/xmlconv/state/login.rb +39 -0
  43. data/lib/xmlconv/state/transaction.rb +13 -0
  44. data/lib/xmlconv/state/transactions.rb +130 -0
  45. data/lib/xmlconv/util/application.rb +142 -0
  46. data/lib/xmlconv/util/autoload.rb +35 -0
  47. data/lib/xmlconv/util/destination.rb +249 -0
  48. data/lib/xmlconv/util/invoicer.rb +71 -0
  49. data/lib/xmlconv/util/known_user.rb +16 -0
  50. data/lib/xmlconv/util/mail.rb +31 -0
  51. data/lib/xmlconv/util/polling_manager.rb +198 -0
  52. data/lib/xmlconv/util/session.rb +23 -0
  53. data/lib/xmlconv/util/transaction.rb +133 -0
  54. data/lib/xmlconv/util/validator.rb +20 -0
  55. data/lib/xmlconv/view/foot.rb +27 -0
  56. data/lib/xmlconv/view/head.rb +13 -0
  57. data/lib/xmlconv/view/login.rb +36 -0
  58. data/lib/xmlconv/view/navigation.rb +30 -0
  59. data/lib/xmlconv/view/navigationlink.rb +21 -0
  60. data/lib/xmlconv/view/pager.rb +73 -0
  61. data/lib/xmlconv/view/preformatted.rb +54 -0
  62. data/lib/xmlconv/view/template.rb +17 -0
  63. data/lib/xmlconv/view/transaction.rb +42 -0
  64. data/lib/xmlconv/view/transactions.rb +90 -0
  65. data/lib/xmlconv.rb +3 -0
  66. data/test/config.rb +12 -0
  67. data/test/mock.rb +149 -0
  68. data/test/suite.rb +16 -0
  69. data/test/test_i2/address.rb +88 -0
  70. data/test/test_i2/date.rb +50 -0
  71. data/test/test_i2/document.rb +62 -0
  72. data/test/test_i2/header.rb +39 -0
  73. data/test/test_i2/order.rb +94 -0
  74. data/test/test_i2/parser.rb +312 -0
  75. data/test/test_i2/position.rb +65 -0
  76. data/test/test_model/address.rb +35 -0
  77. data/test/test_model/agreement.rb +22 -0
  78. data/test/test_model/bdd.rb +55 -0
  79. data/test/test_model/bsr.rb +38 -0
  80. data/test/test_model/delivery.rb +79 -0
  81. data/test/test_model/delivery_item.rb +52 -0
  82. data/test/test_model/freetext_container.rb +45 -0
  83. data/test/test_model/invoice.rb +65 -0
  84. data/test/test_model/invoice_item.rb +41 -0
  85. data/test/test_model/name.rb +57 -0
  86. data/test/test_model/part_info.rb +24 -0
  87. data/test/test_model/party.rb +96 -0
  88. data/test/test_model/price.rb +24 -0
  89. data/test/test_util/application.rb +168 -0
  90. data/test/test_util/destination.rb +415 -0
  91. data/test/test_util/invoicer.rb +42 -0
  92. data/test/test_util/polling_manager.rb +299 -0
  93. data/test/test_util/transaction.rb +130 -0
  94. metadata +178 -0
@@ -0,0 +1,299 @@
1
+ #!/usr/bin/env ruby
2
+ # Util::TestPollingManager -- xmlconv2 -- 29.06.2004 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+ $: << File.expand_path('../../lib', File.dirname(__FILE__))
6
+
7
+ require 'test/unit'
8
+ require 'xmlconv/util/polling_manager'
9
+ require 'mock'
10
+ require 'flexmock'
11
+ require 'rexml/document'
12
+ require 'config'
13
+
14
+ module XmlConv
15
+ module Util
16
+ module Mail
17
+ SMTP_HANDLER = FlexMock.new('SMTP-Handler')
18
+ end
19
+ class TestPollingMission < Test::Unit::TestCase
20
+ def setup
21
+ @mission = PollingMission.new
22
+ @dir = File.expand_path('data/i2',
23
+ File.dirname(__FILE__))
24
+ FileUtils.mkdir_p(@dir)
25
+ @file1 = File.expand_path('file1.txt', @dir)
26
+ File.open(@file1, 'w') { |fh| fh << "File 1\n" }
27
+ end
28
+ def teardown
29
+ FileUtils.rm_rf(@dir)
30
+ end
31
+ def test_file_paths
32
+ @mission.directory = @dir
33
+ file2 = File.expand_path('file2.txt', @dir)
34
+ File.open(file2, 'w') { |fh| fh << "File 2\n" }
35
+ assert_equal([@file1, file2], @mission.file_paths.sort)
36
+ @mission.glob_pattern = "file2*"
37
+ assert_equal([file2], @mission.file_paths.sort)
38
+ end
39
+ def test_poll
40
+ backup_dir = File.expand_path('../data', File.dirname(__FILE__))
41
+ @mission.directory = @dir
42
+ @mission.glob_pattern = '*'
43
+ @mission.partner = 'Partner'
44
+ @mission.reader = 'Reader'
45
+ @mission.writer = 'Writer'
46
+ @mission.destination = 'http://foo.bar.baz:2345'
47
+ @mission.debug_recipients = nil
48
+ @mission.error_recipients = nil
49
+ @mission.backup_dir = backup_dir
50
+ @mission.poll { |transaction|
51
+ assert_instance_of(Util::Transaction, transaction)
52
+ assert_equal("File 1\n", transaction.input)
53
+ assert_equal('file:' << @file1, transaction.origin)
54
+ assert_equal('Reader', transaction.reader)
55
+ assert_equal('Writer', transaction.writer)
56
+ dest = transaction.destination
57
+ assert_instance_of(Util::DestinationHttp, dest)
58
+ assert_equal('http://foo.bar.baz:2345', dest.uri.to_s)
59
+ }
60
+ end
61
+ def test_poll_filtered__match
62
+ backup_dir = File.expand_path('../data', File.dirname(__FILE__))
63
+ @mission.directory = @dir
64
+ @mission.glob_pattern = '*'
65
+ @mission.partner = 'Partner'
66
+ @mission.reader = 'Reader'
67
+ @mission.writer = 'Writer'
68
+ @mission.destination = 'http://foo.bar.baz:2345'
69
+ @mission.debug_recipients = nil
70
+ @mission.error_recipients = nil
71
+ @mission.backup_dir = backup_dir
72
+ @mission.filter = "^File\\s*\\d+"
73
+ @mission.poll { |transaction|
74
+ flunk "Block should not be called in Filtered Transaction"
75
+ }
76
+ assert(true)
77
+ end
78
+ def test_poll_filtered__no_match
79
+ backup_dir = File.expand_path('../data', File.dirname(__FILE__))
80
+ @mission.directory = @dir
81
+ @mission.glob_pattern = '*'
82
+ @mission.partner = 'Partner'
83
+ @mission.reader = 'Reader'
84
+ @mission.writer = 'Writer'
85
+ @mission.destination = 'http://foo.bar.baz:2345'
86
+ @mission.debug_recipients = nil
87
+ @mission.error_recipients = nil
88
+ @mission.backup_dir = backup_dir
89
+ @mission.filter = "^File\\s*2"
90
+ @mission.poll { |transaction|
91
+ assert_instance_of(Util::Transaction, transaction)
92
+ assert_equal("File 1\n", transaction.input)
93
+ assert_equal('file:' << @file1, transaction.origin)
94
+ assert_equal('Reader', transaction.reader)
95
+ assert_equal('Writer', transaction.writer)
96
+ dest = transaction.destination
97
+ assert_instance_of(Util::DestinationHttp, dest)
98
+ assert_equal('http://foo.bar.baz:2345', dest.uri.to_s)
99
+ }
100
+ end
101
+ end
102
+ class TestPopMission < Test::Unit::TestCase
103
+ def setup
104
+ @popserver = TCPServer.new('127.0.0.1', 0)
105
+ addr = @popserver.addr
106
+ @mission = PopMission.new
107
+ @mission.host = 'localhost'
108
+ @mission.port = addr.at(1)
109
+ @mission.user = "testuser"
110
+ @mission.pass = "test"
111
+ @mission.content_type = "text/xml"
112
+ @datadir = File.expand_path('data', File.dirname(__FILE__))
113
+ @mission.backup_dir = File.join(@datadir, 'backup')
114
+ @mission.destination = File.join(@datadir, 'destination')
115
+ @mission.partner = 'Partner'
116
+ @mission.reader = 'Reader'
117
+ @mission.writer = 'Writer'
118
+ @mission.destination = 'http://foo.bar.baz:2345'
119
+ @mission.debug_recipients = nil
120
+ @mission.error_recipients = nil
121
+ end
122
+ def teardown
123
+ FileUtils.rm_r(@datadir)
124
+ end
125
+ def test_poll
126
+ message = RMail::Message.new
127
+ part1 = RMail::Message.new
128
+ part1.header.add("content-type", 'text/plain')
129
+ part1.body = "some senseless data"
130
+ message.add_part(part1)
131
+
132
+ part2 = RMail::Message.new
133
+ part2.header.add("content-type", 'text/xml', nil,
134
+ 'encoding' => 'iso-8859-1')
135
+ doc = REXML::Document.new("<foo><bar /></foo>")
136
+ part2.body = doc.to_s
137
+ message.add_part(part2)
138
+
139
+ part3 = RMail::Message.new
140
+ part3.header.add("content-type", 'text/plain')
141
+ part3.body = "some more senseless data"
142
+ message.add_part(part3)
143
+
144
+ mail = message.to_s
145
+
146
+ @server = Thread.new {
147
+ Thread.start(@popserver.accept) do |socket|
148
+ socket.puts("+OK")
149
+ while line = socket.gets
150
+ case line[0,4]
151
+ when "USER"
152
+ assert_equal("USER testuser\r\n", line)
153
+ socket.print("+OK\r\n")
154
+ when "PASS"
155
+ assert_equal("PASS test\r\n", line)
156
+ socket.print("+OK\r\n")
157
+ when "STAT"
158
+ socket.print("+OK 1 1\r\n")
159
+ when "LIST"
160
+ socket.print("+OK\r\n")
161
+ socket.print("1 #{mail.size}\r\n")
162
+ socket.print(".\r\n")
163
+ when "RETR"
164
+ socket.print("+OK #{mail.size}\r\n")
165
+ socket.print(mail)
166
+ socket.print("\r\n.\r\n")
167
+ when "QUIT"
168
+ socket.print("+OK\r\n")
169
+ break
170
+ else
171
+ socket.print("+OK\r\n")
172
+ end
173
+ end
174
+ socket.close
175
+ end
176
+ }
177
+ counter = 0
178
+ @mission.poll { |transaction|
179
+ counter += 1
180
+ assert_instance_of(Util::Transaction, transaction)
181
+ assert_equal(doc.to_s, transaction.input)
182
+ assert_equal("pop3:testuser@localhost:#{@mission.port}",
183
+ transaction.origin)
184
+ assert_equal('Reader', transaction.reader)
185
+ assert_equal('Writer', transaction.writer)
186
+ dest = transaction.destination
187
+ assert_instance_of(Util::DestinationHttp, dest)
188
+ assert_equal('http://foo.bar.baz:2345', dest.uri.to_s)
189
+ }
190
+ assert_equal(1, counter,
191
+ "poll-block should have been called exactly once")
192
+ end
193
+ def teardown
194
+ @popserver.close
195
+ end
196
+ end
197
+ class TestPollingManager < Test::Unit::TestCase
198
+ include FlexMock::TestCase
199
+ def setup
200
+ @sys = Mock.new('System')
201
+ @polling = PollingManager.new(@sys)
202
+ @dir = File.expand_path('data/i2',
203
+ File.dirname(__FILE__))
204
+ FileUtils.mkdir_p(@dir)
205
+ @file1 = File.expand_path('file1.txt', @dir)
206
+ File.open(@file1, 'w') { |fh| fh << "File 1\n" }
207
+ end
208
+ def teardown
209
+ FileUtils.rm_rf(@dir)
210
+ @sys.__verify
211
+ super
212
+ end
213
+ def test_load_sources
214
+ File.open(CONFIG.polling_file, 'w') { |fh|
215
+ fh << <<-EOS
216
+ --- !ruby/object:XmlConv::Util::PollingMission
217
+ reader: I2Bdd
218
+ directory: "./test/test_util/data/i2"
219
+ writer: BddXml
220
+ destination: "http://example.com:12345"
221
+ --- !ruby/object:XmlConv::Util::PollingMission
222
+ directory: "./test/test_util/data/xml"
223
+ destination: "http://user:pass@foo.bar.baz"
224
+ writer: BddI2
225
+ reader: XmlBdd
226
+ EOS
227
+ }
228
+ block = nil
229
+ block3 = Proc.new { |source|
230
+ flunk "too many sources"
231
+ }
232
+ block2 = Proc.new { |source|
233
+ assert_instance_of(PollingMission, source)
234
+ assert_equal('XmlBdd', source.reader)
235
+ assert_equal('./test/test_util/data/xml', source.directory)
236
+ assert_equal('BddI2', source.writer)
237
+ assert_equal('http://user:pass@foo.bar.baz', source.destination)
238
+ block = block3
239
+ }
240
+ block1 = Proc.new { |source|
241
+ assert_instance_of(PollingMission, source)
242
+ assert_equal('I2Bdd', source.reader)
243
+ assert_equal('./test/test_util/data/i2', source.directory)
244
+ assert_equal('BddXml', source.writer)
245
+ assert_equal('http://example.com:12345', source.destination)
246
+ block = block2
247
+ }
248
+ block = block1
249
+ @polling.load_sources { |source|
250
+ block.call(source)
251
+ }
252
+ end
253
+ def test_poll__general_error
254
+ mission1 = flexmock(YAML.load <<-EOS)
255
+ --- !ruby/object:XmlConv::Util::PollingMission
256
+ reader: I2Bdd
257
+ directory: "./test/test_util/data/i2"
258
+ writer: BddXml
259
+ destination: "http://example.com:12345"
260
+ error_recipients:
261
+ - test@ywesee.com
262
+ EOS
263
+ mission2 = flexmock(YAML.load <<-EOS)
264
+ --- !ruby/object:XmlConv::Util::PollingMission
265
+ directory: "./test/test_util/data/xml"
266
+ destination: "http://user:pass@foo.bar.baz"
267
+ writer: BddI2
268
+ reader: XmlBdd
269
+ error_recipients:
270
+ - test@ywesee.com
271
+ EOS
272
+
273
+ flexmock(YAML).should_receive(:load_documents).and_return do |mission, block|
274
+ block.call(mission1)
275
+ block.call(mission2)
276
+ end
277
+ executed_mission2 = false
278
+ mission1.should_receive(:poll).times(1).and_return do
279
+ raise "Something went wrong (simulated Error)"
280
+ end
281
+ mission2.should_receive(:poll).times(1).and_return do
282
+ executed_mission2 = true
283
+ assert true # passed the test: the second mission was executed
284
+ end
285
+ flexmock(Util::Mail).should_receive(:notify).times(1)\
286
+ .and_return do |recipients, subject, body|
287
+ assert_equal [ 'test@ywesee.com' ], recipients
288
+ assert_equal 'XmlConv2 - Polling-Error', subject
289
+ assert_equal <<-EOS, body[0,52]
290
+ RuntimeError
291
+ Something went wrong (simulated Error)
292
+ EOS
293
+ end
294
+ @polling.poll_sources
295
+ assert executed_mission2, "Polling choked on Error"
296
+ end
297
+ end
298
+ end
299
+ end
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env ruby
2
+ # Util::TestTransaction -- xmlconv2 -- 04.06.2004 -- hwyss@ywesee.com
3
+
4
+ $: << File.dirname(__FILE__)
5
+ $: << File.expand_path('..', File.dirname(__FILE__))
6
+ $: << File.expand_path('../../lib', File.dirname(__FILE__))
7
+
8
+ require 'test/unit'
9
+ require 'xmlconv/util/transaction'
10
+ require 'mock'
11
+
12
+ module XmlConv
13
+ module Conversion
14
+ def const_get(symbol)
15
+ if(symbol.is_a?(Mock))
16
+ symbol
17
+ else
18
+ super
19
+ end
20
+ end
21
+ module_function :const_get
22
+ end
23
+ module Util
24
+ module Mail
25
+ SMTP_HANDLER = Mock.new('SMTP-Handler')
26
+ end
27
+ class TestTransaction < Test::Unit::TestCase
28
+ def setup
29
+ @transaction = Util::Transaction.new
30
+ end
31
+ def test_attr_accessors
32
+ assert_respond_to(@transaction, :input)
33
+ assert_respond_to(@transaction, :input=)
34
+ assert_respond_to(@transaction, :reader)
35
+ assert_respond_to(@transaction, :reader=)
36
+ assert_respond_to(@transaction, :writer)
37
+ assert_respond_to(@transaction, :writer=)
38
+ assert_respond_to(@transaction, :transaction_id)
39
+ assert_respond_to(@transaction, :transaction_id=)
40
+ assert_respond_to(@transaction, :error)
41
+ assert_respond_to(@transaction, :error=)
42
+ end
43
+ def test_attr_readers
44
+ assert_respond_to(@transaction, :output)
45
+ assert_respond_to(@transaction, :model)
46
+ assert_respond_to(@transaction, :start_time)
47
+ assert_respond_to(@transaction, :commit_time)
48
+ end
49
+ def test_execute
50
+ src = Mock.new('source')
51
+ input = Mock.new('input')
52
+ reader = Mock.new('reader')
53
+ model = Mock.new('model')
54
+ writer = Mock.new('writer')
55
+ output = Mock.new('output')
56
+ destination = Mock.new('destination')
57
+ @transaction.input = src
58
+ @transaction.reader = reader
59
+ @transaction.writer = writer
60
+ @transaction.destination = destination
61
+ reader.__next(:parse) { |read_src|
62
+ assert_equal(src, read_src)
63
+ input
64
+ }
65
+ reader.__next(:convert) { |read_input|
66
+ assert_equal(input, read_input)
67
+ model
68
+ }
69
+ writer.__next(:convert) { |write_input|
70
+ assert_equal(model, write_input)
71
+ output
72
+ }
73
+ destination.__next(:deliver) { |delivery|
74
+ assert_equal(output, delivery)
75
+ }
76
+ destination.__next(:forget_credentials!) { }
77
+ time1 = Time.now
78
+ result = @transaction.execute
79
+ time2 = Time.now
80
+ assert_equal(src, @transaction.input)
81
+ assert_equal(reader, @transaction.reader)
82
+ assert_equal(model, @transaction.model)
83
+ assert_equal(writer, @transaction.writer)
84
+ assert_equal(output.to_s, @transaction.output)
85
+ assert_equal(output.to_s, result)
86
+ assert_in_delta(time1, @transaction.start_time, 0.001)
87
+ assert_in_delta(time2, @transaction.commit_time, 0.001)
88
+ input.__verify
89
+ reader.__verify
90
+ model.__verify
91
+ writer.__verify
92
+ output.__verify
93
+ destination.__verify
94
+ end
95
+ def test_persistable
96
+ assert_kind_of(ODBA::Persistable, @transaction)
97
+ end
98
+ def test_dumpable
99
+ assert_nothing_raised { Marshal.dump(@transaction) }
100
+ end
101
+ def test_notify
102
+ @transaction.instance_variable_set('@start_time', Time.now)
103
+ @transaction.error_recipients = ['bar']
104
+ smtp = Mail::SMTP_HANDLER
105
+ @transaction.notify
106
+ @transaction.debug_recipients = ['foo']
107
+ mail = Mock.new('MailSession')
108
+ mail.__next(:sendmail) { |encoded, from, recipients|
109
+ assert_equal(['foo'], recipients)
110
+
111
+ }
112
+ smtp.__next(:start) { |block, server|
113
+ block.call(mail)
114
+ }
115
+ @transaction.notify
116
+ @transaction.error = 'error!'
117
+ mail.__next(:sendmail) { |encoded, from, recipients|
118
+ assert_equal(['foo', 'bar'], recipients)
119
+
120
+ }
121
+ smtp.__next(:start) { |block, server|
122
+ block.call(mail)
123
+ }
124
+ @transaction.notify
125
+ smtp.__verify
126
+ mail.__verify
127
+ end
128
+ end
129
+ end
130
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xmlconv
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Masaomi Hatakeyama, Zeno R.R. Davatz
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-23 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: hoe
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 41
30
+ segments:
31
+ - 2
32
+ - 9
33
+ - 1
34
+ version: 2.9.1
35
+ type: :development
36
+ version_requirements: *id001
37
+ description: xmlconverter, convert XML to flat files.
38
+ email:
39
+ - mhatakeyama@ywesee.com, zdavatz@ywesee.com
40
+ executables:
41
+ - admin
42
+ - xmlconvd
43
+ extensions: []
44
+
45
+ extra_rdoc_files:
46
+ - History.txt
47
+ - README.txt
48
+ files:
49
+ - History.txt
50
+ - LICENSE
51
+ - README.txt
52
+ - Rakefile
53
+ - bin/admin
54
+ - bin/xmlconvd
55
+ - data/grammar/i2.grammar
56
+ - lib/xmlconv.rb
57
+ - lib/xmlconv/config.rb
58
+ - lib/xmlconv/custom/lookandfeel.rb
59
+ - lib/xmlconv/i2/address.rb
60
+ - lib/xmlconv/i2/date.rb
61
+ - lib/xmlconv/i2/document.rb
62
+ - lib/xmlconv/i2/header.rb
63
+ - lib/xmlconv/i2/order.rb
64
+ - lib/xmlconv/i2/parser.rb
65
+ - lib/xmlconv/i2/position.rb
66
+ - lib/xmlconv/i2/record.rb
67
+ - lib/xmlconv/model/address.rb
68
+ - lib/xmlconv/model/agreement.rb
69
+ - lib/xmlconv/model/bdd.rb
70
+ - lib/xmlconv/model/bsr.rb
71
+ - lib/xmlconv/model/delivery.rb
72
+ - lib/xmlconv/model/delivery_item.rb
73
+ - lib/xmlconv/model/document.rb
74
+ - lib/xmlconv/model/freetext_container.rb
75
+ - lib/xmlconv/model/id_container.rb
76
+ - lib/xmlconv/model/invoice.rb
77
+ - lib/xmlconv/model/invoice_item.rb
78
+ - lib/xmlconv/model/item.rb
79
+ - lib/xmlconv/model/item_container.rb
80
+ - lib/xmlconv/model/name.rb
81
+ - lib/xmlconv/model/part_info.rb
82
+ - lib/xmlconv/model/part_info_container.rb
83
+ - lib/xmlconv/model/party.rb
84
+ - lib/xmlconv/model/party_container.rb
85
+ - lib/xmlconv/model/price.rb
86
+ - lib/xmlconv/model/price_container.rb
87
+ - lib/xmlconv/model/transaction.rb
88
+ - lib/xmlconv/state/global.rb
89
+ - lib/xmlconv/state/global_predefine.rb
90
+ - lib/xmlconv/state/login.rb
91
+ - lib/xmlconv/state/transaction.rb
92
+ - lib/xmlconv/state/transactions.rb
93
+ - lib/xmlconv/util/application.rb
94
+ - lib/xmlconv/util/autoload.rb
95
+ - lib/xmlconv/util/destination.rb
96
+ - lib/xmlconv/util/invoicer.rb
97
+ - lib/xmlconv/util/known_user.rb
98
+ - lib/xmlconv/util/mail.rb
99
+ - lib/xmlconv/util/polling_manager.rb
100
+ - lib/xmlconv/util/session.rb
101
+ - lib/xmlconv/util/transaction.rb
102
+ - lib/xmlconv/util/validator.rb
103
+ - lib/xmlconv/view/foot.rb
104
+ - lib/xmlconv/view/head.rb
105
+ - lib/xmlconv/view/login.rb
106
+ - lib/xmlconv/view/navigation.rb
107
+ - lib/xmlconv/view/navigationlink.rb
108
+ - lib/xmlconv/view/pager.rb
109
+ - lib/xmlconv/view/preformatted.rb
110
+ - lib/xmlconv/view/template.rb
111
+ - lib/xmlconv/view/transaction.rb
112
+ - lib/xmlconv/view/transactions.rb
113
+ - test/config.rb
114
+ - test/mock.rb
115
+ - test/suite.rb
116
+ - test/test_i2/address.rb
117
+ - test/test_i2/date.rb
118
+ - test/test_i2/document.rb
119
+ - test/test_i2/header.rb
120
+ - test/test_i2/order.rb
121
+ - test/test_i2/parser.rb
122
+ - test/test_i2/position.rb
123
+ - test/test_model/address.rb
124
+ - test/test_model/agreement.rb
125
+ - test/test_model/bdd.rb
126
+ - test/test_model/bsr.rb
127
+ - test/test_model/delivery.rb
128
+ - test/test_model/delivery_item.rb
129
+ - test/test_model/freetext_container.rb
130
+ - test/test_model/invoice.rb
131
+ - test/test_model/invoice_item.rb
132
+ - test/test_model/name.rb
133
+ - test/test_model/part_info.rb
134
+ - test/test_model/party.rb
135
+ - test/test_model/price.rb
136
+ - test/test_util/application.rb
137
+ - test/test_util/destination.rb
138
+ - test/test_util/invoicer.rb
139
+ - test/test_util/polling_manager.rb
140
+ - test/test_util/transaction.rb
141
+ - .gemtest
142
+ has_rdoc: true
143
+ homepage: http://scm.ywesee.com/?p=xmlconv/.git;a=summary
144
+ licenses: []
145
+
146
+ post_install_message:
147
+ rdoc_options:
148
+ - --main
149
+ - README.txt
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ hash: 3
167
+ segments:
168
+ - 0
169
+ version: "0"
170
+ requirements: []
171
+
172
+ rubyforge_project: xmlconv
173
+ rubygems_version: 1.4.2
174
+ signing_key:
175
+ specification_version: 3
176
+ summary: xmlconverter, convert XML to flat files.
177
+ test_files: []
178
+