dm-xml-adapter 0.573 → 0.574
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/lib/dm-xml-adapter.rb +10 -16
- metadata +43 -19
data/lib/dm-xml-adapter.rb
CHANGED
@@ -79,17 +79,16 @@ module DataMapper::Adapters
|
|
79
79
|
FileUtils.mkdir_p(classname_to_dir(model.to_s))
|
80
80
|
end
|
81
81
|
|
82
|
-
def create(resources)
|
82
|
+
def create(resources)
|
83
|
+
class_name = resources.first.class.to_s
|
84
|
+
key = resources.first.model.key.first.name
|
83
85
|
resources.each do |resource|
|
84
|
-
|
85
|
-
id = find_free_id_for(resource.class.to_s)
|
86
|
+
id = find_free_id_for(class_name)
|
86
87
|
# find name of key attribute
|
87
|
-
key = model.key.first.name
|
88
88
|
resource.attributes[key] = id
|
89
89
|
resource.instance_variable_set("@" + key.to_s, id)
|
90
90
|
save(resource)
|
91
|
-
end
|
92
|
-
return resources.size
|
91
|
+
end.size
|
93
92
|
end
|
94
93
|
|
95
94
|
def delete(collection)
|
@@ -188,20 +187,15 @@ module DataMapper::Adapters
|
|
188
187
|
new_obj = Kernel.const_get(clazz).new
|
189
188
|
end
|
190
189
|
|
191
|
-
# file is our XML file
|
192
|
-
string = IO.read(file)
|
193
|
-
parser = XML::Parser.string(string)
|
194
|
-
doc = parser.parse
|
195
|
-
root_node = doc.root
|
196
190
|
# iterate over children
|
197
|
-
|
191
|
+
XML::Parser.string(IO.read(file)).parse.root.children.each do |child|
|
198
192
|
child_class = child.attributes["class"]
|
199
193
|
if child_class != nil
|
200
194
|
# this means we have an attribute
|
201
|
-
if (child_class == "
|
202
|
-
new_obj.instance_variable_set("@#{child.name}", child.content.to_i)
|
203
|
-
elsif (child_class == "String")
|
195
|
+
if (child_class == "String")
|
204
196
|
new_obj.instance_variable_set("@#{child.name}", child.content)
|
197
|
+
elsif (child_class == "Integer")
|
198
|
+
new_obj.instance_variable_set("@#{child.name}", child.content.to_i)
|
205
199
|
elsif (child_class == "TrueClass")
|
206
200
|
new_obj.instance_variable_set("@#{child.name}", true)
|
207
201
|
elsif (child_class == "FalseClass")
|
@@ -271,7 +265,7 @@ module DataMapper::Adapters
|
|
271
265
|
end
|
272
266
|
end
|
273
267
|
|
274
|
-
xmlfile = File.new(class_name_to_file(
|
268
|
+
xmlfile = File.new(class_name_to_file(resource.class.to_s, resource.key.first), "w")
|
275
269
|
tempfile = Tempfile.new("dm-xml-adapter", Dir.tmpdir())
|
276
270
|
tempfile.puts out_string
|
277
271
|
tempfile.close
|
metadata
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-xml-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 574
|
8
|
+
version: "0.574"
|
5
9
|
platform: ruby
|
6
10
|
authors:
|
7
11
|
- Joshua Harding
|
@@ -9,39 +13,57 @@ autorequire: dm-xml-adapter
|
|
9
13
|
bindir: bin
|
10
14
|
cert_chain: []
|
11
15
|
|
12
|
-
date: 2010-
|
16
|
+
date: 2010-03-11 00:00:00 -05:00
|
13
17
|
default_executable:
|
14
18
|
dependencies:
|
15
19
|
- !ruby/object:Gem::Dependency
|
16
20
|
name: libxml-ruby
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
23
|
requirements:
|
21
24
|
- - ">="
|
22
25
|
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 0
|
23
28
|
version: "0"
|
24
|
-
|
29
|
+
type: :runtime
|
30
|
+
version_requirements: *id001
|
25
31
|
- !ruby/object:Gem::Dependency
|
26
32
|
name: builder
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
prerelease: false
|
34
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
35
|
requirements:
|
31
36
|
- - ">="
|
32
37
|
- !ruby/object:Gem::Version
|
38
|
+
segments:
|
39
|
+
- 0
|
33
40
|
version: "0"
|
34
|
-
|
41
|
+
type: :runtime
|
42
|
+
version_requirements: *id002
|
35
43
|
- !ruby/object:Gem::Dependency
|
36
44
|
name: simple_memoize
|
45
|
+
prerelease: false
|
46
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
segments:
|
51
|
+
- 0
|
52
|
+
version: "0"
|
37
53
|
type: :runtime
|
38
|
-
|
39
|
-
|
54
|
+
version_requirements: *id003
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: log4r
|
57
|
+
prerelease: false
|
58
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
40
59
|
requirements:
|
41
60
|
- - ">="
|
42
61
|
- !ruby/object:Gem::Version
|
62
|
+
segments:
|
63
|
+
- 0
|
43
64
|
version: "0"
|
44
|
-
|
65
|
+
type: :runtime
|
66
|
+
version_requirements: *id004
|
45
67
|
description:
|
46
68
|
email: josh@statewidesoftware.com
|
47
69
|
executables: []
|
@@ -51,10 +73,10 @@ extensions: []
|
|
51
73
|
extra_rdoc_files:
|
52
74
|
- README
|
53
75
|
files:
|
54
|
-
- lib/dm-xml-adapter.rb
|
55
76
|
- lib/ratecounter.rb
|
56
|
-
-
|
77
|
+
- lib/dm-xml-adapter.rb
|
57
78
|
- spec/spec_helper.rb
|
79
|
+
- spec/dm-xml-adapter_spec.rb
|
58
80
|
- README
|
59
81
|
has_rdoc: true
|
60
82
|
homepage:
|
@@ -69,21 +91,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
91
|
requirements:
|
70
92
|
- - ">="
|
71
93
|
- !ruby/object:Gem::Version
|
94
|
+
segments:
|
95
|
+
- 0
|
72
96
|
version: "0"
|
73
|
-
version:
|
74
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
98
|
requirements:
|
76
99
|
- - ">="
|
77
100
|
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 0
|
78
103
|
version: "0"
|
79
|
-
version:
|
80
104
|
requirements: []
|
81
105
|
|
82
106
|
rubyforge_project:
|
83
|
-
rubygems_version: 1.3.
|
107
|
+
rubygems_version: 1.3.6
|
84
108
|
signing_key:
|
85
109
|
specification_version: 3
|
86
110
|
summary: a XML adapter for DataMapper. this adapter allows you to use DataMapper with XML files as a backing store.
|
87
111
|
test_files:
|
88
|
-
- spec/dm-xml-adapter_spec.rb
|
89
112
|
- spec/spec_helper.rb
|
113
|
+
- spec/dm-xml-adapter_spec.rb
|