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.
- data/CHANGELOG.txt +8 -0
- data/LICENSE.txt +1 -1
- data/README.rdoc +2 -1
- data/Rakefile +56 -42
- data/TODO.txt +3 -1
- data/lib/ruote/dm/storage.rb +85 -62
- data/lib/ruote/dm/version.rb +2 -1
- data/ruote-dm.gemspec +24 -64
- data/test/functional_connection.rb +1 -1
- metadata +46 -59
data/CHANGELOG.txt
CHANGED
@@ -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)
|
data/LICENSE.txt
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
Copyright (c) 2005-
|
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
|
data/README.rdoc
CHANGED
@@ -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::
|
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
|
-
#
|
12
|
+
# clean
|
9
13
|
|
10
|
-
|
11
|
-
CLEAN.include('pkg', 'tmp', 'html')
|
12
|
-
task :default => [ :clean ]
|
14
|
+
CLEAN.include('pkg', 'rdoc')
|
13
15
|
|
14
16
|
|
15
17
|
#
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
31
|
+
|
32
|
+
task :default => [ :test ]
|
47
33
|
|
48
34
|
|
49
35
|
#
|
50
|
-
#
|
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
|
-
#
|
63
|
+
# rdoc
|
54
64
|
#
|
55
|
-
|
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
|
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 = "
|
75
|
+
rd.title = "#{GEMSPEC.name} #{GEMSPEC.version}"
|
65
76
|
end
|
66
77
|
|
67
78
|
|
68
79
|
#
|
69
|
-
#
|
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
|
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
|
-
[
|
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
|
|
data/lib/ruote/dm/storage.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2005-
|
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::
|
74
|
+
# Ruote::Dm::Storage.new(:default)))
|
71
75
|
#
|
72
|
-
class
|
76
|
+
class Storage
|
73
77
|
|
74
78
|
include Ruote::StorageBase
|
75
79
|
|
76
80
|
attr_reader :repository
|
77
81
|
|
78
|
-
def initialize
|
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
|
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
|
-
|
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
|
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
|
-
|
112
|
+
do_insert(doc, 1)
|
111
113
|
|
112
114
|
doc['_id']
|
113
115
|
end
|
114
116
|
end
|
115
117
|
|
116
|
-
def put
|
118
|
+
def put(doc, opts={})
|
117
119
|
|
118
120
|
DataMapper.repository(@repository) do
|
119
121
|
|
120
|
-
|
122
|
+
if doc['_rev']
|
121
123
|
|
122
|
-
|
124
|
+
d = get(doc['type'], doc['_id'])
|
123
125
|
|
124
|
-
|
125
|
-
|
126
|
+
return true unless d
|
127
|
+
return d if d['_rev'] != doc['_rev']
|
128
|
+
# failures
|
129
|
+
end
|
126
130
|
|
127
|
-
nrev =
|
131
|
+
nrev = doc['_rev'].to_i + 1
|
128
132
|
|
129
133
|
begin
|
130
134
|
|
131
|
-
|
135
|
+
do_insert(doc, nrev)
|
132
136
|
|
133
|
-
|
137
|
+
rescue DataObjects::IntegrityError => ie
|
134
138
|
|
135
|
-
doc['
|
139
|
+
return (get(doc['type'], doc['_id']) || true)
|
140
|
+
# failure
|
141
|
+
end
|
136
142
|
|
137
|
-
|
143
|
+
Document.all(
|
144
|
+
:typ => doc['type'], :ide => doc['_id'], :rev.lt => nrev
|
145
|
+
).destroy
|
138
146
|
|
139
|
-
|
140
|
-
#p :clash
|
141
|
-
end
|
147
|
+
doc['_rev'] = nrev if opts[:update_rev]
|
142
148
|
|
143
|
-
|
149
|
+
nil
|
150
|
+
# success
|
144
151
|
end
|
145
152
|
end
|
146
153
|
|
147
|
-
def get
|
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
|
164
|
+
def delete(doc)
|
156
165
|
|
157
166
|
raise ArgumentError.new('no _rev for doc') unless doc['_rev']
|
158
167
|
|
159
|
-
DataMapper.repository(@repository)
|
160
|
-
|
161
|
-
r = put(doc)
|
168
|
+
count = DataMapper.repository(@repository).adapter.delete(
|
169
|
+
Document.all(:typ => doc['type'], :ide => doc['_id']))
|
162
170
|
|
163
|
-
|
171
|
+
return (get(doc['type'], doc['_id']) || true) if count < 1
|
164
172
|
|
165
|
-
|
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
|
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).
|
193
|
+
return select_last_revs(Document.all(q)).size if opts[:count]
|
188
194
|
|
189
195
|
docs = Document.all(q)
|
190
|
-
docs = docs
|
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
|
205
|
+
def ids(type)
|
200
206
|
|
201
207
|
DataMapper.repository(@repository) do
|
202
|
-
|
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
|
221
|
+
def dump(type)
|
214
222
|
|
215
|
-
|
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
|
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!
|
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
|
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
|
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
|
-
|
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
|
278
|
+
def query_workitems(criteria)
|
272
279
|
|
273
280
|
cr = { :typ => 'workitems' }
|
274
281
|
|
275
|
-
return Document.all(cr).
|
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
|
-
|
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
|
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
|
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
|
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
|
data/lib/ruote/dm/version.rb
CHANGED
data/ruote-dm.gemspec
CHANGED
@@ -1,72 +1,32 @@
|
|
1
|
-
#
|
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.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.email =
|
15
|
-
s.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
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
|
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 2
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 2.
|
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:
|
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:
|
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
|
-
-
|
31
|
-
|
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-
|
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
|
-
|
46
|
+
- 2
|
47
|
+
version: 1.0.2
|
44
48
|
type: :runtime
|
45
49
|
version_requirements: *id002
|
46
50
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
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:
|
62
|
+
version: 2.2.0
|
56
63
|
type: :runtime
|
57
64
|
version_requirements: *id003
|
58
65
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
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
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
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
|
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://
|
103
|
+
homepage: http://ruote.rubyforge.org
|
119
104
|
licenses: []
|
120
105
|
|
121
106
|
post_install_message:
|
122
|
-
rdoc_options:
|
123
|
-
|
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.
|
130
|
+
rubygems_version: 1.3.7
|
144
131
|
signing_key:
|
145
132
|
specification_version: 3
|
146
|
-
summary: datamapper storage for ruote (a
|
147
|
-
test_files:
|
148
|
-
|
133
|
+
summary: datamapper storage for ruote (a workflow engine)
|
134
|
+
test_files: []
|
135
|
+
|