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.
Files changed (2) hide show
  1. data/lib/dm-xml-adapter.rb +10 -16
  2. metadata +43 -19
@@ -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
- model = resource.model
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
- root_node.children.each do |child|
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 == "Integer")
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(resource_class, resource_key), "w")
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
- version: "0.573"
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-02-10 00:00:00 -05:00
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
- type: :runtime
18
- version_requirement:
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
- version:
29
+ type: :runtime
30
+ version_requirements: *id001
25
31
  - !ruby/object:Gem::Dependency
26
32
  name: builder
27
- type: :runtime
28
- version_requirement:
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
- version:
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
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
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
- version:
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
- - spec/dm-xml-adapter_spec.rb
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.5
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