xamplr 1.9.6 → 1.9.7
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/lib/xamplr/from-xml.rb +6 -2
- data/lib/xamplr/persist-to-xml.rb +16 -1
- data/lib/xamplr/persister.rb +9 -0
- data/lib/xamplr/persisters/tokyo-cabinet.rb +15 -6
- data/xamplr.gemspec +2 -2
- metadata +2 -2
data/VERSION.yml
CHANGED
data/lib/xamplr/from-xml.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding utf-8
|
2
|
+
|
1
3
|
require 'libxml'
|
2
4
|
|
3
5
|
module Xampl
|
@@ -278,11 +280,13 @@ TODO -- can these ever happen?
|
|
278
280
|
return existing_element || element
|
279
281
|
when LibXML::XML::Reader::TYPE_TEXT, LibXML::XML::Reader::TYPE_CDATA, LibXML::XML::Reader::TYPE_SIGNIFICANT_WHITESPACE, LibXML::XML::Reader::TYPE_ENTITY_REFERENCE
|
280
282
|
if element.has_mixed_content then
|
281
|
-
text = @reader.read_string
|
283
|
+
text = @reader.read_string.force_encoding('utf-8')
|
284
|
+
# puts "#{ File.basename __FILE__ }:#{ __LINE__ } [#{__method__}] #{ text.encoding } [[#{ text }]]"
|
282
285
|
the_text = element.note_adding_text_content(text, @is_realising)
|
283
286
|
element << the_text
|
284
287
|
else
|
285
|
-
text = @reader.read_string
|
288
|
+
text = @reader.read_string.force_encoding('utf-8')
|
289
|
+
# puts "#{ File.basename __FILE__ }:#{ __LINE__ } [#{__method__}] #{ text.encoding } [[#{ text }]] (#{ @reader.class })"
|
286
290
|
the_text = element.note_adding_text_content(text, @is_realising)
|
287
291
|
element.add_content(the_text, false)
|
288
292
|
end
|
@@ -199,7 +199,22 @@ module Xampl
|
|
199
199
|
@body << "/>"
|
200
200
|
else
|
201
201
|
@body << ">"
|
202
|
-
|
202
|
+
begin
|
203
|
+
@body.real_concat(content_esc(xampl._content)) if xampl._content
|
204
|
+
rescue => e
|
205
|
+
begin
|
206
|
+
s = xampl._content.force_encoding(@body.encoding)
|
207
|
+
@body.real_concat(content_esc(s)) if xampl._content
|
208
|
+
rescue => e
|
209
|
+
puts "EXCEPTION: #{ e }"
|
210
|
+
puts "body encoding: #{ @body.encoding }"
|
211
|
+
puts "xampl._content encoding: #{ xampl._content.encoding }"
|
212
|
+
puts "content_esc(xampl._content) encoding: #{ content_esc(xampl._content).encoding }"
|
213
|
+
puts "xampl._content: [[[#{ xampl._content }]]]"
|
214
|
+
# puts "body so far: [[[#{ @body }]]]"
|
215
|
+
raise e
|
216
|
+
end
|
217
|
+
end
|
203
218
|
end_element(xampl)
|
204
219
|
end
|
205
220
|
end
|
data/lib/xamplr/persister.rb
CHANGED
@@ -138,6 +138,11 @@ module Xampl
|
|
138
138
|
when :ruby_format then
|
139
139
|
return xampl.to_ruby(mentions)
|
140
140
|
end
|
141
|
+
rescue => e
|
142
|
+
msg = "Failed to represent #{ xampl } due to: #{ e }"
|
143
|
+
puts msg
|
144
|
+
puts e.backtrace
|
145
|
+
raise msg
|
141
146
|
end
|
142
147
|
|
143
148
|
def realise(representation, target=nil)
|
@@ -345,6 +350,8 @@ module Xampl
|
|
345
350
|
if require 'tokyocabinet' then
|
346
351
|
require "xamplr/persisters/tokyo-cabinet"
|
347
352
|
end
|
353
|
+
rescue LoadError => e
|
354
|
+
# Well. No Tokyo Cabinet.
|
348
355
|
rescue
|
349
356
|
# Well. No Tokyo Cabinet.
|
350
357
|
end
|
@@ -353,6 +360,8 @@ module Xampl
|
|
353
360
|
if require 'mongo' then
|
354
361
|
require "xamplr/persisters/mongo"
|
355
362
|
end
|
363
|
+
rescue LoadError => e
|
364
|
+
# Well. No MongoDB.
|
356
365
|
rescue
|
357
366
|
# Well. No MongoDB.
|
358
367
|
end
|
@@ -28,7 +28,11 @@ module Xampl
|
|
28
28
|
|
29
29
|
rmsg = nil
|
30
30
|
unless result then
|
31
|
-
|
31
|
+
if @tc_db then
|
32
|
+
rmsg = sprintf(msg, @tc_db.errmsg(@tc_db.ecode))
|
33
|
+
else
|
34
|
+
rmsg = "either not actually a TokyoCabinet Error, or @tc_db was never opened"
|
35
|
+
end
|
32
36
|
STDERR.puts "NOTE: TokyoCabinet Error!"
|
33
37
|
STDERR.puts(rmsg)
|
34
38
|
STDERR.puts "---------"
|
@@ -61,11 +65,8 @@ module Xampl
|
|
61
65
|
@tc_db = nil
|
62
66
|
# puts "#{ __FILE__ }:#{ __LINE__ } [#{__method__}] file: #{ @filename }, db: #{ @tc_db.class.name }"
|
63
67
|
|
64
|
-
setup_db
|
68
|
+
setup_db
|
65
69
|
|
66
|
-
# note_errors("TC[[#{ @filename }]]:: optimisation error: %s\n") do
|
67
|
-
# @tc_db.optimize(-1, -1, -1, TDB::TDEFLATE)
|
68
|
-
# end
|
69
70
|
# note_errors("TC[[#{ @filename }]]:: close error: %s\n") do
|
70
71
|
# @tc_db.close
|
71
72
|
# end
|
@@ -78,9 +79,17 @@ module Xampl
|
|
78
79
|
rescue => e
|
79
80
|
#TODO -- why do this???
|
80
81
|
puts "#{ __FILE__ }:#{ __LINE__ } [#{__method__}] OH CRAP!!! #{ e }"
|
82
|
+
puts e.backtrace
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
86
|
+
def setup_db
|
87
|
+
open_tc_db
|
88
|
+
# note_errors("TC[[#{ @filename }]]:: optimisation error: %s\n") do
|
89
|
+
# @tc_db.optimize(-1, -1, -1, TDB::TDEFLATE)
|
90
|
+
# end
|
91
|
+
end
|
92
|
+
|
84
93
|
def open_tc_db
|
85
94
|
# if @tcdb then
|
86
95
|
# puts "#{ __FILE__ }:#{ __LINE__ } [#{__method__}] ALREADY OPEN #{ @filename }"
|
@@ -379,7 +388,7 @@ module Xampl
|
|
379
388
|
# puts " 1 #{ callers[1] }"
|
380
389
|
# puts " 2 #{ callers[2] }"
|
381
390
|
|
382
|
-
#
|
391
|
+
# setup_db
|
383
392
|
@time_stamp = Time.now.to_f.to_s
|
384
393
|
|
385
394
|
note_errors("TC[[#{ @filename }]]:: tranbegin error: %s\n") do
|
data/xamplr.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{xamplr}
|
8
|
-
s.version = "1.9.
|
8
|
+
s.version = "1.9.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bob Hutchison"]
|
12
|
-
s.date = %q{2010-02-
|
12
|
+
s.date = %q{2010-02-18}
|
13
13
|
s.description = %q{xamplr is the ruby version of xampl.}
|
14
14
|
s.email = %q{hutch@recursive.ca}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xamplr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Hutchison
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-18 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|