ruote-dm 2.1.11 → 2.2.0

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.
@@ -2,6 +2,14 @@
2
2
  = ruote-dm - CHANGELOG.txt
3
3
 
4
4
 
5
+ == ruote-dm 2.2.0 released 2011/03/01
6
+
7
+ - revised get_many (to avoid duplicates)
8
+ - Ruote::Dm::Storage (keeping Ruote::Dm::DmStorage for a while)
9
+ - making sure that Storage#ids returns a sorted result
10
+ - simpler DmStorage#dump
11
+
12
+
5
13
  == ruote-dm 2.1.11 released 2010/10/01
6
14
 
7
15
  - get_many(x, y, descending => true)
@@ -1,5 +1,5 @@
1
1
 
2
- Copyright (c) 2005-2010, John Mettraux, jmettraux@gmail.com
2
+ Copyright (c) 2005-2011, John Mettraux, jmettraux@gmail.com
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
@@ -19,12 +19,13 @@ This is how a ruote engine is setup with a ruote-dm storage (postgres) and a wor
19
19
 
20
20
  engine = Ruote::Engine.new(
21
21
  Ruote::Worker.new(
22
- Ruote::Dm::DmStorage.new(:default)))
22
+ Ruote::Dm::Storage.new(:default)))
23
23
 
24
24
  # ...
25
25
 
26
26
  To create the tables in the database :
27
27
 
28
+ require 'dm-migrations'
28
29
  Ruote::Dm::Document.auto_migrate!
29
30
 
30
31
 
data/Rakefile CHANGED
@@ -1,78 +1,92 @@
1
1
 
2
+ $:.unshift('.') # 1.9.2
3
+
2
4
  require 'rubygems'
5
+
3
6
  require 'rake'
7
+ require 'rake/clean'
8
+ require 'rake/rdoctask'
4
9
 
5
- require 'lib/ruote/dm/version.rb'
6
10
 
7
11
  #
8
- # CLEAN
12
+ # clean
9
13
 
10
- require 'rake/clean'
11
- CLEAN.include('pkg', 'tmp', 'html')
12
- task :default => [ :clean ]
14
+ CLEAN.include('pkg', 'rdoc')
13
15
 
14
16
 
15
17
  #
16
- # GEM
17
-
18
- require 'jeweler'
19
-
20
- Jeweler::Tasks.new do |gem|
21
-
22
- gem.version = Ruote::Dm::VERSION
23
- gem.name = 'ruote-dm'
24
- gem.summary = 'datamapper storage for ruote (a ruby workflow engine)'
25
- gem.description = %{
26
- datamapper storage for ruote (a ruby workflow engine)
27
- }.strip
28
- gem.email = 'jmettraux@gmail.com'
29
- gem.homepage = 'http://github.com/jmettraux/ruote-dm'
30
- gem.authors = [ 'John Mettraux' ]
31
- gem.rubyforge_project = 'ruote'
32
-
33
- gem.test_file = 'test/test.rb'
34
-
35
- gem.add_dependency 'ruote', ">= #{Ruote::Dm::VERSION}"
36
- gem.add_dependency 'dm-core'
37
- gem.add_dependency 'dm-migrations'
38
- #gem.add_dependency 'dm-aggregates'
39
- #gem.add_dependency 'dm-types'
40
- gem.add_development_dependency 'yard'
41
- gem.add_development_dependency 'rake'
42
- gem.add_development_dependency 'jeweler'
43
-
44
- # gemspec spec : http://www.rubygems.org/read/chapter/20
18
+ # test / spec
19
+
20
+ task :test do
21
+
22
+ puts
23
+ puts "to test ruote-dm, head to your ruote/ dir and run"
24
+ puts
25
+ puts " ruby test/test.rb -- --dm"
26
+ puts
27
+ puts "but first, make sure your ruote-dm/test/functional_connection.rb"
28
+ puts "is set correctly."
29
+ puts
45
30
  end
46
- Jeweler::GemcutterTasks.new
31
+
32
+ task :default => [ :test ]
47
33
 
48
34
 
49
35
  #
50
- # DOC
36
+ # gem
37
+
38
+ GEMSPEC_FILE = Dir['*.gemspec'].first
39
+ GEMSPEC = eval(File.read(GEMSPEC_FILE))
40
+ GEMSPEC.validate
41
+
42
+
43
+ desc %{
44
+ builds the gem and places it in pkg/
45
+ }
46
+ task :build do
47
+
48
+ sh "gem build #{GEMSPEC_FILE}"
49
+ sh "mkdir pkg" rescue nil
50
+ sh "mv #{GEMSPEC.name}-#{GEMSPEC.version}.gem pkg/"
51
+ end
52
+
53
+ desc %{
54
+ builds the gem and pushes it to rubygems.org
55
+ }
56
+ task :push => :build do
57
+
58
+ sh "gem push pkg/#{GEMSPEC.name}-#{GEMSPEC.version}.gem"
59
+ end
60
+
51
61
 
52
62
  #
53
- # make sure to have rdoc 2.5.x to run that
63
+ # rdoc
54
64
  #
55
- require 'rake/rdoctask'
65
+ # make sure to have rdoc 2.5.x to run that
66
+
56
67
  Rake::RDocTask.new do |rd|
57
68
 
58
69
  rd.main = 'README.rdoc'
59
- rd.rdoc_dir = 'rdoc/ruote-dm_rdoc'
70
+ rd.rdoc_dir = 'rdoc'
60
71
 
61
72
  rd.rdoc_files.include(
62
73
  'README.rdoc', 'CHANGELOG.txt', 'CREDITS.txt', 'lib/**/*.rb')
63
74
 
64
- rd.title = "ruote-dm #{Ruote::Dm::VERSION}"
75
+ rd.title = "#{GEMSPEC.name} #{GEMSPEC.version}"
65
76
  end
66
77
 
67
78
 
68
79
  #
69
- # TO THE WEB
80
+ # upload_rdoc
70
81
 
82
+ desc %{
83
+ upload the rdoc to rubyforge
84
+ }
71
85
  task :upload_rdoc => [ :clean, :rdoc ] do
72
86
 
73
87
  account = 'jmettraux@rubyforge.org'
74
88
  webdir = '/var/www/gforge-projects/ruote'
75
89
 
76
- sh "rsync -azv -e ssh rdoc/ruote-dm_rdoc #{account}:#{webdir}/"
90
+ sh "rsync -azv -e ssh rdoc/#{GEMSPEC.name}_rdoc #{account}:#{webdir}/"
77
91
  end
78
92
 
data/TODO.txt CHANGED
@@ -6,11 +6,13 @@
6
6
  [o] `--> then investigate ct_X weaknesses (transactions ?)
7
7
  [o] `--> then investigate ct_X weaknesses
8
8
  [x] storage.close
9
+ [x] crunner.sh 2 weakness... only weak on OSX
9
10
 
10
11
  [ ] storage : control #save result
11
12
  [ ] examine indices (index) (participant_name ?) perf perf perf
12
13
 
13
14
  [ ] write example on how to use active-record to "read" workitems
14
15
 
15
- [x] crunner.sh 2 weakness... only weak on OSX
16
+ [ ] http://ruote-ci.s3.amazonaws.com/20110122_Sat_2002__1.9.2-p136_ruote-dm_mysql__FAILED.txt
17
+ is it that get_many returns "deleted" documents as well ?
16
18
 
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2005-2010, John Mettraux, jmettraux@gmail.com
2
+ # Copyright (c) 2005-2011, John Mettraux, jmettraux@gmail.com
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  # of this software and associated documentation files (the "Software"), to deal
@@ -51,6 +51,10 @@ module Dm
51
51
  def to_h
52
52
  Rufus::Json.decode(doc)
53
53
  end
54
+
55
+ def <=>(other)
56
+ self.ide <=> other.ide
57
+ end
54
58
  end
55
59
 
56
60
  #
@@ -67,15 +71,15 @@ module Dm
67
71
  #
68
72
  # engine = Ruote::Engine.new(
69
73
  # Ruote::Worker.new(
70
- # Ruote::Dm::DmStorage.new(:default)))
74
+ # Ruote::Dm::Storage.new(:default)))
71
75
  #
72
- class DmStorage
76
+ class Storage
73
77
 
74
78
  include Ruote::StorageBase
75
79
 
76
80
  attr_reader :repository
77
81
 
78
- def initialize (repository=nil, options={})
82
+ def initialize(repository=nil, options={})
79
83
 
80
84
  @options = options
81
85
  @repository = repository
@@ -83,21 +87,19 @@ module Dm
83
87
  put_configuration
84
88
  end
85
89
 
86
- def put_msg (action, options)
90
+ def put_msg(action, options)
87
91
 
88
92
  # put_msg is a unique action, no need for all the complexity of put
89
93
 
90
94
  DataMapper.repository(@repository) do
91
95
 
92
- doc = prepare_msg_doc(action, options)
93
-
94
- insert(doc, 1)
96
+ do_insert(prepare_msg_doc(action, options) , 1)
95
97
  end
96
98
 
97
99
  nil
98
100
  end
99
101
 
100
- def put_schedule (flavour, owner_fei, s, msg)
102
+ def put_schedule(flavour, owner_fei, s, msg)
101
103
 
102
104
  # put_schedule is a unique action, no need for all the complexity of put
103
105
 
@@ -107,72 +109,72 @@ module Dm
107
109
 
108
110
  DataMapper.repository(@repository) do
109
111
 
110
- insert(doc, 1)
112
+ do_insert(doc, 1)
111
113
 
112
114
  doc['_id']
113
115
  end
114
116
  end
115
117
 
116
- def put (doc, opts={})
118
+ def put(doc, opts={})
117
119
 
118
120
  DataMapper.repository(@repository) do
119
121
 
120
- current = do_get(doc['type'], doc['_id'])
122
+ if doc['_rev']
121
123
 
122
- rev = doc['_rev'].to_i
124
+ d = get(doc['type'], doc['_id'])
123
125
 
124
- return true if current.nil? && rev > 0
125
- return current.to_h if current && rev != current.rev
126
+ return true unless d
127
+ return d if d['_rev'] != doc['_rev']
128
+ # failures
129
+ end
126
130
 
127
- nrev = rev + 1
131
+ nrev = doc['_rev'].to_i + 1
128
132
 
129
133
  begin
130
134
 
131
- insert(doc, nrev)
135
+ do_insert(doc, nrev)
132
136
 
133
- current.destroy! if current
137
+ rescue DataObjects::IntegrityError => ie
134
138
 
135
- doc['_rev'] = nrev if opts[:update_rev]
139
+ return (get(doc['type'], doc['_id']) || true)
140
+ # failure
141
+ end
136
142
 
137
- return nil
143
+ Document.all(
144
+ :typ => doc['type'], :ide => doc['_id'], :rev.lt => nrev
145
+ ).destroy
138
146
 
139
- rescue DataObjects::IntegrityError => ie
140
- #p :clash
141
- end
147
+ doc['_rev'] = nrev if opts[:update_rev]
142
148
 
143
- get(doc['type'], doc['_id'])
149
+ nil
150
+ # success
144
151
  end
145
152
  end
146
153
 
147
- def get (type, key)
154
+ def get(type, key)
148
155
 
149
156
  DataMapper.repository(@repository) do
157
+
150
158
  d = do_get(type, key)
159
+
151
160
  d ? d.to_h : nil
152
161
  end
153
162
  end
154
163
 
155
- def delete (doc)
164
+ def delete(doc)
156
165
 
157
166
  raise ArgumentError.new('no _rev for doc') unless doc['_rev']
158
167
 
159
- DataMapper.repository(@repository) do
160
-
161
- r = put(doc)
168
+ count = DataMapper.repository(@repository).adapter.delete(
169
+ Document.all(:typ => doc['type'], :ide => doc['_id']))
162
170
 
163
- #p [ 0, true, doc['_id'], Thread.current.object_id.to_s[-3..-1] ] if r
171
+ return (get(doc['type'], doc['_id']) || true) if count < 1
164
172
 
165
- return true unless r.nil?
166
-
167
- r = Document.all(:typ => doc['type'], :ide => doc['_id']).destroy!
168
-
169
- #p [ 1, r ? nil : true, doc['_id'], Thread.current.object_id.to_s[-3..-1] ]
170
-
171
- r ? nil : true
172
- end
173
+ nil
174
+ # success
173
175
  end
174
176
 
175
- def get_many (type, key=nil, opts={})
177
+ def get_many(type, key=nil, opts={})
176
178
 
177
179
  q = { :typ => type }
178
180
 
@@ -182,12 +184,16 @@ module Dm
182
184
  keys = key ? Array(key) : nil
183
185
  q[:wfid] = keys if keys && keys.first.is_a?(String)
184
186
 
187
+ q[:order] = (
188
+ opts[:descending] ? [ :ide.desc, :rev.desc ] : [ :ide.asc, :rev.asc ]
189
+ ) unless opts[:count]
190
+
185
191
  DataMapper.repository(@repository) do
186
192
 
187
- return Document.all(q).count if opts[:count]
193
+ return select_last_revs(Document.all(q)).size if opts[:count]
188
194
 
189
195
  docs = Document.all(q)
190
- docs = docs.reverse if opts[:descending]
196
+ docs = select_last_revs(docs, opts[:descending])
191
197
  docs = docs.collect { |d| d.to_h }
192
198
 
193
199
  keys && keys.first.is_a?(Regexp) ?
@@ -196,28 +202,26 @@ module Dm
196
202
  end
197
203
  end
198
204
 
199
- def ids (type)
205
+ def ids(type)
200
206
 
201
207
  DataMapper.repository(@repository) do
202
- Document.all(:typ => type).collect { |d| d.ide }
208
+
209
+ Document.all(:typ => type).collect { |d| d.ide }.uniq.sort
203
210
  end
204
211
  end
205
212
 
206
213
  def purge!
207
214
 
208
215
  DataMapper.repository(@repository) do
216
+
209
217
  Document.all.destroy!
210
218
  end
211
219
  end
212
220
 
213
- def dump (type)
221
+ def dump(type)
214
222
 
215
- s = "=== #{type} ===\n"
216
-
217
- get_many(type).inject(s) do |s1, h|
218
- s1 << " #{Ruote::FlowExpressionId.to_storage_id(h['fei'])}"
219
- s1 << " => #{h['original_tree'].first} #{h['_rev']}\n"
220
- end
223
+ "=== #{type} ===\n" +
224
+ get_many(type).map { |h| " #{h['_id']} => #{h.inspect}" }.join("\n")
221
225
  end
222
226
 
223
227
  def shutdown
@@ -227,16 +231,17 @@ module Dm
227
231
 
228
232
  # Mainly used by ruote's test/unit/ut_17_storage.rb
229
233
  #
230
- def add_type (type)
234
+ def add_type(type)
231
235
 
232
236
  # does nothing, types are differentiated by the 'typ' column
233
237
  end
234
238
 
235
239
  # Nukes a db type and reputs it (losing all the documents that were in it).
236
240
  #
237
- def purge_type! (type)
241
+ def purge_type!(type)
238
242
 
239
243
  DataMapper.repository(@repository) do
244
+
240
245
  Document.all(:typ => type).destroy!
241
246
  end
242
247
  end
@@ -244,7 +249,7 @@ module Dm
244
249
  # A provision made for workitems, allow to query them directly by
245
250
  # participant name.
246
251
  #
247
- def by_participant (type, participant_name, opts)
252
+ def by_participant(type, participant_name, opts)
248
253
 
249
254
  raise NotImplementedError if type != 'workitems'
250
255
 
@@ -252,12 +257,12 @@ module Dm
252
257
  :typ => type, :participant_name => participant_name
253
258
  }.merge(opts)
254
259
 
255
- Document.all(query).collect { |d| d.to_h }
260
+ select_last_revs(Document.all(query)).collect { |d| d.to_h }
256
261
  end
257
262
 
258
263
  # Querying workitems by field (warning, goes deep into the JSON structure)
259
264
  #
260
- def by_field (type, field, value=nil)
265
+ def by_field(type, field, value=nil)
261
266
 
262
267
  raise NotImplementedError if type != 'workitems'
263
268
 
@@ -265,14 +270,16 @@ module Dm
265
270
  like.push(Rufus::Json.encode(value)) if value
266
271
  like.push('%')
267
272
 
268
- Document.all(:typ => type, :doc.like => like.join).collect { |d| d.to_h }
273
+ select_last_revs(
274
+ Document.all(:typ => type, :doc.like => like.join)
275
+ ).collect { |d| d.to_h }
269
276
  end
270
277
 
271
- def query_workitems (criteria)
278
+ def query_workitems(criteria)
272
279
 
273
280
  cr = { :typ => 'workitems' }
274
281
 
275
- return Document.all(cr).count if criteria['count']
282
+ return select_last_revs(Document.all(cr)).size if criteria['count']
276
283
 
277
284
  offset = criteria.delete('offset')
278
285
  limit = criteria.delete('limit')
@@ -294,12 +301,14 @@ module Dm
294
301
  ([ 'doc LIKE ?' ] * likes.size).join(' AND '), *likes
295
302
  ] unless likes.empty?
296
303
 
297
- Document.all(cr).collect { |d| Ruote::Workitem.new(d.to_h) }
304
+ select_last_revs(
305
+ Document.all(cr)
306
+ ).collect { |d| Ruote::Workitem.new(d.to_h) }
298
307
  end
299
308
 
300
309
  protected
301
310
 
302
- def insert (doc, rev)
311
+ def do_insert(doc, rev)
303
312
 
304
313
  Document.new(
305
314
  :ide => doc['_id'],
@@ -313,12 +322,12 @@ module Dm
313
322
  ).save!
314
323
  end
315
324
 
316
- def extract_wfid (doc)
325
+ def extract_wfid(doc)
317
326
 
318
327
  doc['wfid'] || (doc['fei'] ? doc['fei']['wfid'] : nil)
319
328
  end
320
329
 
321
- def do_get (type, key)
330
+ def do_get(type, key)
322
331
 
323
332
  Document.first(:typ => type, :ide => key, :order => :rev.desc)
324
333
  end
@@ -334,6 +343,20 @@ module Dm
334
343
  conf = { '_id' => 'engine', 'type' => 'configurations' }.merge(@options)
335
344
  put(conf)
336
345
  end
346
+
347
+ def select_last_revs(docs, reverse=false)
348
+
349
+ docs = docs.inject({}) { |h, doc| h[doc.ide] = doc; h }.values.sort
350
+
351
+ reverse ? docs.reverse : docs
352
+ end
353
+ end
354
+
355
+ #
356
+ # Ruote::Dm::Storage should be used, but until ruote-dm 2.1.12, it
357
+ # was Ruote::Dm::DmStorage. This class is here for 'backward compatibility'.
358
+ #
359
+ class DmStorage < Storage
337
360
  end
338
361
  end
339
362
  end
@@ -1,7 +1,8 @@
1
1
 
2
2
  module Ruote
3
3
  module Dm
4
- VERSION = '2.1.11'
4
+
5
+ VERSION = '2.2.0'
5
6
  end
6
7
  end
7
8
 
@@ -1,72 +1,32 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
5
2
 
6
3
  Gem::Specification.new do |s|
7
- s.name = %q{ruote-dm}
8
- s.version = "2.1.11"
9
4
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["John Mettraux"]
12
- s.date = %q{2010-10-01}
13
- s.description = %q{datamapper storage for ruote (a ruby workflow engine)}
14
- s.email = %q{jmettraux@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- "CHANGELOG.txt",
21
- "CREDITS.txt",
22
- "LICENSE.txt",
23
- "README.rdoc",
24
- "Rakefile",
25
- "TODO.txt",
26
- "lib/ruote-dm.rb",
27
- "lib/ruote/dm.rb",
28
- "lib/ruote/dm/storage.rb",
29
- "lib/ruote/dm/version.rb",
30
- "ruote-dm.gemspec",
31
- "test/functional_connection.rb",
32
- "test/test.rb"
33
- ]
34
- s.homepage = %q{http://github.com/jmettraux/ruote-dm}
35
- s.rdoc_options = ["--charset=UTF-8"]
36
- s.require_paths = ["lib"]
37
- s.rubyforge_project = %q{ruote}
38
- s.rubygems_version = %q{1.3.6}
39
- s.summary = %q{datamapper storage for ruote (a ruby workflow engine)}
40
- s.test_files = [
41
- "test/test.rb"
5
+ s.name = 'ruote-dm'
6
+ s.version = File.read('lib/ruote/dm/version.rb').match(/VERSION = '([^']+)'/)[1]
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = [ 'John Mettraux' ]
9
+ s.email = [ 'jmettraux@gmail.com' ]
10
+ s.homepage = 'http://ruote.rubyforge.org'
11
+ s.rubyforge_project = 'ruote'
12
+ s.summary = 'datamapper storage for ruote (a workflow engine)'
13
+ s.description = %q{
14
+ datamapper storage for ruote (a workflow engine)
15
+ }
16
+
17
+ #s.files = `git ls-files`.split("\n")
18
+ s.files = Dir[
19
+ 'Rakefile',
20
+ 'lib/**/*.rb', 'spec/**/*.rb', 'test/**/*.rb',
21
+ '*.gemspec', '*.txt', '*.rdoc', '*.md'
42
22
  ]
43
23
 
44
- if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
- s.specification_version = 3
24
+ s.add_runtime_dependency 'dm-core', '1.0.2'
25
+ s.add_runtime_dependency 'dm-migrations', '1.0.2'
26
+ s.add_runtime_dependency 'ruote', ">= #{s.version}"
27
+
28
+ s.add_development_dependency 'rake'
47
29
 
48
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
49
- s.add_runtime_dependency(%q<ruote>, [">= 2.1.11"])
50
- s.add_runtime_dependency(%q<dm-core>, [">= 0"])
51
- s.add_runtime_dependency(%q<dm-migrations>, [">= 0"])
52
- s.add_development_dependency(%q<yard>, [">= 0"])
53
- s.add_development_dependency(%q<rake>, [">= 0"])
54
- s.add_development_dependency(%q<jeweler>, [">= 0"])
55
- else
56
- s.add_dependency(%q<ruote>, [">= 2.1.11"])
57
- s.add_dependency(%q<dm-core>, [">= 0"])
58
- s.add_dependency(%q<dm-migrations>, [">= 0"])
59
- s.add_dependency(%q<yard>, [">= 0"])
60
- s.add_dependency(%q<rake>, [">= 0"])
61
- s.add_dependency(%q<jeweler>, [">= 0"])
62
- end
63
- else
64
- s.add_dependency(%q<ruote>, [">= 2.1.11"])
65
- s.add_dependency(%q<dm-core>, [">= 0"])
66
- s.add_dependency(%q<dm-migrations>, [">= 0"])
67
- s.add_dependency(%q<yard>, [">= 0"])
68
- s.add_dependency(%q<rake>, [">= 0"])
69
- s.add_dependency(%q<jeweler>, [">= 0"])
70
- end
30
+ s.require_path = 'lib'
71
31
  end
72
32
 
@@ -31,6 +31,6 @@ DataMapper.setup(:default, 'postgres://localhost/ruote_test')
31
31
 
32
32
  def new_storage (opts)
33
33
 
34
- Ruote::Dm::DmStorage.new(:default, opts)
34
+ Ruote::Dm::Storage.new(:default, opts)
35
35
  end
36
36
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 2
7
- - 1
8
- - 11
9
- version: 2.1.11
7
+ - 2
8
+ - 0
9
+ version: 2.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - John Mettraux
@@ -14,51 +14,59 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-01 00:00:00 +09:00
17
+ date: 2011-03-01 00:00:00 +09:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: ruote
21
+ name: dm-core
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
- - - ">="
26
+ - - "="
26
27
  - !ruby/object:Gem::Version
27
28
  segments:
28
- - 2
29
29
  - 1
30
- - 11
31
- version: 2.1.11
30
+ - 0
31
+ - 2
32
+ version: 1.0.2
32
33
  type: :runtime
33
34
  version_requirements: *id001
34
35
  - !ruby/object:Gem::Dependency
35
- name: dm-core
36
+ name: dm-migrations
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
- - - ">="
41
+ - - "="
40
42
  - !ruby/object:Gem::Version
41
43
  segments:
44
+ - 1
42
45
  - 0
43
- version: "0"
46
+ - 2
47
+ version: 1.0.2
44
48
  type: :runtime
45
49
  version_requirements: *id002
46
50
  - !ruby/object:Gem::Dependency
47
- name: dm-migrations
51
+ name: ruote
48
52
  prerelease: false
49
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
50
55
  requirements:
51
56
  - - ">="
52
57
  - !ruby/object:Gem::Version
53
58
  segments:
59
+ - 2
60
+ - 2
54
61
  - 0
55
- version: "0"
62
+ version: 2.2.0
56
63
  type: :runtime
57
64
  version_requirements: *id003
58
65
  - !ruby/object:Gem::Dependency
59
- name: yard
66
+ name: rake
60
67
  prerelease: false
61
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
62
70
  requirements:
63
71
  - - ">="
64
72
  - !ruby/object:Gem::Version
@@ -67,63 +75,41 @@ dependencies:
67
75
  version: "0"
68
76
  type: :development
69
77
  version_requirements: *id004
70
- - !ruby/object:Gem::Dependency
71
- name: rake
72
- prerelease: false
73
- requirement: &id005 !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- segments:
78
- - 0
79
- version: "0"
80
- type: :development
81
- version_requirements: *id005
82
- - !ruby/object:Gem::Dependency
83
- name: jeweler
84
- prerelease: false
85
- requirement: &id006 !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- segments:
90
- - 0
91
- version: "0"
92
- type: :development
93
- version_requirements: *id006
94
- description: datamapper storage for ruote (a ruby workflow engine)
95
- email: jmettraux@gmail.com
78
+ description: "\n\
79
+ datamapper storage for ruote (a workflow engine)\n"
80
+ email:
81
+ - jmettraux@gmail.com
96
82
  executables: []
97
83
 
98
84
  extensions: []
99
85
 
100
- extra_rdoc_files:
101
- - LICENSE.txt
102
- - README.rdoc
86
+ extra_rdoc_files: []
87
+
103
88
  files:
104
- - CHANGELOG.txt
105
- - CREDITS.txt
106
- - LICENSE.txt
107
- - README.rdoc
108
89
  - Rakefile
109
- - TODO.txt
110
- - lib/ruote-dm.rb
111
- - lib/ruote/dm.rb
112
90
  - lib/ruote/dm/storage.rb
113
91
  - lib/ruote/dm/version.rb
114
- - ruote-dm.gemspec
92
+ - lib/ruote/dm.rb
93
+ - lib/ruote-dm.rb
115
94
  - test/functional_connection.rb
116
95
  - test/test.rb
96
+ - ruote-dm.gemspec
97
+ - CHANGELOG.txt
98
+ - CREDITS.txt
99
+ - LICENSE.txt
100
+ - TODO.txt
101
+ - README.rdoc
117
102
  has_rdoc: true
118
- homepage: http://github.com/jmettraux/ruote-dm
103
+ homepage: http://ruote.rubyforge.org
119
104
  licenses: []
120
105
 
121
106
  post_install_message:
122
- rdoc_options:
123
- - --charset=UTF-8
107
+ rdoc_options: []
108
+
124
109
  require_paths:
125
110
  - lib
126
111
  required_ruby_version: !ruby/object:Gem::Requirement
112
+ none: false
127
113
  requirements:
128
114
  - - ">="
129
115
  - !ruby/object:Gem::Version
@@ -131,6 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
117
  - 0
132
118
  version: "0"
133
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
134
121
  requirements:
135
122
  - - ">="
136
123
  - !ruby/object:Gem::Version
@@ -140,9 +127,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
127
  requirements: []
141
128
 
142
129
  rubyforge_project: ruote
143
- rubygems_version: 1.3.6
130
+ rubygems_version: 1.3.7
144
131
  signing_key:
145
132
  specification_version: 3
146
- summary: datamapper storage for ruote (a ruby workflow engine)
147
- test_files:
148
- - test/test.rb
133
+ summary: datamapper storage for ruote (a workflow engine)
134
+ test_files: []
135
+