dm-xml-adapter 0.581 → 0.582

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.
@@ -34,6 +34,7 @@ module DataMapper::Adapters
34
34
 
35
35
  def put(classname, id, object)
36
36
  # check to see if we have a classname entry
37
+ #puts "putting a cache entry of id: #{id}"
37
38
  if (@classes[classname] == nil)
38
39
  @classes[classname] = Hash.new
39
40
  end
@@ -50,6 +51,7 @@ module DataMapper::Adapters
50
51
  end
51
52
 
52
53
  def get(classname, id)
54
+ #puts "getting a cache entry for id: #{id}"
53
55
  hash = @classes[classname]
54
56
  return hash[id]
55
57
  end
@@ -75,11 +77,11 @@ module DataMapper::Adapters
75
77
 
76
78
  end
77
79
 
78
- def destroy_model_storage(repository, model)
80
+ def destroy_model_storage(model)
79
81
  FileUtils.rm_rf(classname_to_dir(model.to_s))
80
82
  end
81
83
 
82
- def create_model_storage(repository, model)
84
+ def create_model_storage(model)
83
85
  FileUtils.mkdir_p(classname_to_dir(model.to_s))
84
86
  end
85
87
 
@@ -88,6 +90,7 @@ module DataMapper::Adapters
88
90
  resources.each do |resource|
89
91
  id = find_free_id_for(resources.first.class.to_s)
90
92
  # find name of key attribute
93
+ #puts "we are creating a new resource with id: #{id}"
91
94
  resource.attributes[key] = id
92
95
  resource.instance_variable_set("@" + key.to_s, id)
93
96
  save(resource)
@@ -159,7 +162,10 @@ module DataMapper::Adapters
159
162
  # the file's newer OR older (aha!!), so we gotta load it up
160
163
  object = file_to_object(filename, model)
161
164
  objects << object
162
- @cache.put(model_name, object.key.first, object)
165
+ key = object.key
166
+ next if (key == nil)
167
+ key = object.key.first
168
+ @cache.put(model_name, key, object)
163
169
  @cache.set_mtime(filename, File.mtime(filename))
164
170
  end
165
171
  end
@@ -220,7 +226,9 @@ module DataMapper::Adapters
220
226
  # if there are no entries in the directory
221
227
  # or the directory doesn't exist
222
228
  # we need to create it...
229
+ #puts "trying to find a free id for #{class_name}"
223
230
  if ! File.exists?(classname_to_dir(class_name))
231
+ #puts "the directory doesn't exist"
224
232
  # default ID
225
233
  return 1
226
234
  end
@@ -230,10 +238,14 @@ module DataMapper::Adapters
230
238
  end
231
239
  id = @last_used_id[class_name] || 1
232
240
  while true do
233
- if ! File.exists?(File.join(directory.path, id.to_s + ".xml"))
241
+ filename = File.join(directory.path, id.to_s + ".xml")
242
+ #puts "checking for the existence of #{filename}"
243
+ if ! File.exists?(filename)
234
244
  @last_used_id[class_name] = id
245
+ #puts "found free id: #{id}"
235
246
  return id
236
247
  end
248
+ #puts "the file existed..."
237
249
  id += 1
238
250
  end
239
251
  end
@@ -242,6 +254,7 @@ module DataMapper::Adapters
242
254
  # since we're saving, purge the cache
243
255
  resource_class = resource.class.to_s
244
256
  resource_key = resource.key.first
257
+ #puts "the key of the oject we are saving: #{resource_key}"
245
258
  @cache.delete(resource_class, resource_key)
246
259
  @cache.delete_mtime(class_name_to_file(resource_class, resource_key))
247
260
 
@@ -269,10 +282,13 @@ module DataMapper::Adapters
269
282
  end
270
283
  end
271
284
  end
272
-
285
+
286
+ #puts "the key is now: #{resource_key}"
273
287
  xmlfile = File.new(class_name_to_file(resource_class, resource_key), "w")
288
+ #puts "saving to #{xmlfile.path}"
274
289
  tempfile = Tempfile.new("dm-xml-adapter", Dir.tmpdir())
275
290
  tempfile.puts out_string
291
+ #puts "the content is: #{out_string}"
276
292
  tempfile.close
277
293
  FileUtils.mv(tempfile.path,xmlfile.path)
278
294
  return xmlfile
@@ -288,9 +304,9 @@ module DataMapper::Adapters
288
304
  return File.join(classname_to_dir(class_name), id.to_s + ".xml")
289
305
  end
290
306
 
291
- memoize(:file_to_id)
292
- memoize(:classname_to_dir)
293
- memoize(:class_name_to_file)
307
+ #memoize(:file_to_id)
308
+ #memoize(:classname_to_dir)
309
+ #memoize(:class_name_to_file)
294
310
 
295
311
  end
296
312
  end
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'dm-core'
3
3
  require 'pathname'
4
+ require 'dm-migrations'
4
5
  require Pathname(__FILE__).dirname.expand_path + 'spec_helper'
5
6
 
6
7
  DataMapper::Adapters::XmlAdapter.threads = 2
@@ -8,6 +9,7 @@ DataMapper::Adapters::XmlAdapter.threads = 2
8
9
  describe DataMapper::Adapters::XmlAdapter do
9
10
  before(:each) do
10
11
  @adapter = DataMapper.setup(:default, {:adapter => 'xml', :directory => 'db'})
12
+ DataMapper.auto_migrate!
11
13
  delete_all
12
14
  end
13
15
 
@@ -15,8 +17,8 @@ describe DataMapper::Adapters::XmlAdapter do
15
17
  XMLTest::User.all.each {|u| u.destroy }
16
18
  XMLTest::Post.all.each {|p| p.destroy }
17
19
  AutoQuote.all.each {|aq| aq.destroy }
18
- Food.all.each {|f| f.destroy }
19
- Drink.all.each {|d| d.destroy }
20
+ Food.all.each {|f| f.destroy }
21
+ Drink.all.each {|d| d.destroy }
20
22
  end
21
23
 
22
24
  after(:each) do
@@ -156,7 +158,8 @@ describe DataMapper::Adapters::XmlAdapter do
156
158
  100.times {|n| Drink.create(:name => "Drink#{n}") }
157
159
  # pick a random one
158
160
  ids = Drink.all.map {|d| d.drink_id }
159
- drink = Drink.get(ids[rand(100).to_i])
161
+ random_key = ids[rand(100).to_i]
162
+ drink = Drink.get(random_key)
160
163
  drink.name = "Drinky drink!"
161
164
  drink.save
162
165
  Drink.first(:name => "Drinky drink!").should_not == nil
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'dm-core'
3
3
  require 'pathname'
4
- require Pathname(__FILE__).dirname.parent.expand_path + 'lib/dm-xml-adapter'
4
+ require 'lib/dm-xml-adapter'
5
5
 
6
6
  class Food
7
7
  include DataMapper::Resource
@@ -41,7 +41,7 @@ class User
41
41
  property :user_id, Serial
42
42
  property :name, String
43
43
  property :age, Integer
44
- property :money, BigDecimal
44
+ property :money, Decimal
45
45
  property :created, DateTime
46
46
  property :cool, Boolean
47
47
  property :content, String
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-xml-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.581"
4
+ version: "0.582"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Harding
@@ -9,7 +9,7 @@ autorequire: dm-xml-adapter
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-07-01 00:00:00 -04:00
12
+ date: 2010-07-27 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,26 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: "0"
54
54
  version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: dm-core
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: dm-migrations
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
55
75
  description:
56
76
  email: josh@statewidesoftware.com
57
77
  executables: []