dm-xml-adapter 0.574 → 0.575

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 +16 -18
  2. metadata +21 -35
@@ -9,7 +9,8 @@ require 'tempfile'
9
9
  require 'simple_memoize'
10
10
  require 'log4r'
11
11
 
12
- #
12
+ # the XML adapter is an adapter for DataMapper that allows you to store
13
+ # data in XML files. beware, it's not transactionally safe.
13
14
  module DataMapper::Adapters
14
15
 
15
16
  class XmlAdapterCache
@@ -31,8 +32,7 @@ module DataMapper::Adapters
31
32
  return @mtimes[file]
32
33
  end
33
34
 
34
- def put(classname, id, object)
35
-
35
+ def put(classname, id, object)
36
36
  # check to see if we have a classname entry
37
37
  if (@classes[classname] == nil)
38
38
  @classes[classname] = Hash.new
@@ -51,8 +51,7 @@ module DataMapper::Adapters
51
51
 
52
52
  def get(classname, id)
53
53
  hash = @classes[classname]
54
- object = hash[id]
55
- return object
54
+ return hash[id]
56
55
  end
57
56
  end
58
57
 
@@ -80,10 +79,9 @@ module DataMapper::Adapters
80
79
  end
81
80
 
82
81
  def create(resources)
83
- class_name = resources.first.class.to_s
84
82
  key = resources.first.model.key.first.name
85
83
  resources.each do |resource|
86
- id = find_free_id_for(class_name)
84
+ id = find_free_id_for(resources.first.class.to_s)
87
85
  # find name of key attribute
88
86
  resource.attributes[key] = id
89
87
  resource.instance_variable_set("@" + key.to_s, id)
@@ -145,9 +143,9 @@ module DataMapper::Adapters
145
143
  if ! File.exists?(directory)
146
144
  return []
147
145
  end
146
+
148
147
  objects = []
149
- Dir.entries(directory).select {|file| file.match(/\.xml$/) }.each do |filename|
150
- filename = directory + "/" + filename
148
+ Dir[directory + "/*.xml"].each do |filename|
151
149
  # see if we have a nice cached version
152
150
  mtime = File.mtime(filename)
153
151
  cache_mtime = @cache.get_mtime(filename)
@@ -179,12 +177,11 @@ module DataMapper::Adapters
179
177
  def file_to_object(file, model)
180
178
  model_name = model.to_s
181
179
  # allocate new object to receive these fields
182
- if (model_name.match(/\:\:/))
183
- modname, clazz = model_name.split("::")
180
+ if (model_name.match(/(.*)\:\:(.*)/))
181
+ modname, clazz = [$1, $2]
184
182
  new_obj = Kernel.const_get(modname).const_get(clazz).new
185
183
  else
186
- clazz = model_name
187
- new_obj = Kernel.const_get(clazz).new
184
+ new_obj = Kernel.const_get(model_name).new
188
185
  end
189
186
 
190
187
  # iterate over children
@@ -253,19 +250,20 @@ module DataMapper::Adapters
253
250
  # iterate over the resource and figure out the fields
254
251
  xml.tag!("RubyObject", :class => resource.model.to_s) do
255
252
  resource.model.properties.each do |property|
256
- value = resource.instance_variable_get("@" + property.name.to_s)
253
+ property_name = property.name.to_s
254
+ value = resource.instance_variable_get("@" + property_name)
257
255
  # special case for false
258
256
  if property.primitive == TrueClass and value == false
259
- xml.tag!(property.name.to_s, false, :class => FalseClass.to_s)
257
+ xml.tag!(property_name, false, :class => FalseClass.to_s)
260
258
  elsif (property.primitive == BigDecimal and value != nil)
261
- xml.tag!(property.name.to_s, value.to_s("F"), :class => BigDecimal)
259
+ xml.tag!(property_name, value.to_s("F"), :class => BigDecimal)
262
260
  elsif (value != nil)
263
- xml.tag!(property.name.to_s, value, :class => property.primitive)
261
+ xml.tag!(property_name, value, :class => property.primitive)
264
262
  end
265
263
  end
266
264
  end
267
265
 
268
- xmlfile = File.new(class_name_to_file(resource.class.to_s, resource.key.first), "w")
266
+ xmlfile = File.new(class_name_to_file(resource_class, resource_key), "w")
269
267
  tempfile = Tempfile.new("dm-xml-adapter", Dir.tmpdir())
270
268
  tempfile.puts out_string
271
269
  tempfile.close
metadata CHANGED
@@ -1,11 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-xml-adapter
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 574
8
- version: "0.574"
4
+ version: "0.575"
9
5
  platform: ruby
10
6
  authors:
11
7
  - Joshua Harding
@@ -13,57 +9,49 @@ autorequire: dm-xml-adapter
13
9
  bindir: bin
14
10
  cert_chain: []
15
11
 
16
- date: 2010-03-11 00:00:00 -05:00
12
+ date: 2010-03-16 00:00:00 -04:00
17
13
  default_executable:
18
14
  dependencies:
19
15
  - !ruby/object:Gem::Dependency
20
16
  name: libxml-ruby
21
- prerelease: false
22
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
23
20
  requirements:
24
21
  - - ">="
25
22
  - !ruby/object:Gem::Version
26
- segments:
27
- - 0
28
23
  version: "0"
29
- type: :runtime
30
- version_requirements: *id001
24
+ version:
31
25
  - !ruby/object:Gem::Dependency
32
26
  name: builder
33
- prerelease: false
34
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
35
30
  requirements:
36
31
  - - ">="
37
32
  - !ruby/object:Gem::Version
38
- segments:
39
- - 0
40
33
  version: "0"
41
- type: :runtime
42
- version_requirements: *id002
34
+ version:
43
35
  - !ruby/object:Gem::Dependency
44
36
  name: simple_memoize
45
- prerelease: false
46
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
47
40
  requirements:
48
41
  - - ">="
49
42
  - !ruby/object:Gem::Version
50
- segments:
51
- - 0
52
43
  version: "0"
53
- type: :runtime
54
- version_requirements: *id003
44
+ version:
55
45
  - !ruby/object:Gem::Dependency
56
46
  name: log4r
57
- prerelease: false
58
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
59
50
  requirements:
60
51
  - - ">="
61
52
  - !ruby/object:Gem::Version
62
- segments:
63
- - 0
64
53
  version: "0"
65
- type: :runtime
66
- version_requirements: *id004
54
+ version:
67
55
  description:
68
56
  email: josh@statewidesoftware.com
69
57
  executables: []
@@ -91,20 +79,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
79
  requirements:
92
80
  - - ">="
93
81
  - !ruby/object:Gem::Version
94
- segments:
95
- - 0
96
82
  version: "0"
83
+ version:
97
84
  required_rubygems_version: !ruby/object:Gem::Requirement
98
85
  requirements:
99
86
  - - ">="
100
87
  - !ruby/object:Gem::Version
101
- segments:
102
- - 0
103
88
  version: "0"
89
+ version:
104
90
  requirements: []
105
91
 
106
92
  rubyforge_project:
107
- rubygems_version: 1.3.6
93
+ rubygems_version: 1.3.5
108
94
  signing_key:
109
95
  specification_version: 3
110
96
  summary: a XML adapter for DataMapper. this adapter allows you to use DataMapper with XML files as a backing store.