ruote-ar 0.0.5 → 0.0.6

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ruote/ar/storage.rb +8 -92
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb7623a30d3f27fe140eb7a9a1c75c1ac5a9ce24
4
- data.tar.gz: bae42cb1380314d14bd1e5ed9311d39b1047d036
3
+ metadata.gz: 45956b7a81783e00454f1e1fe081c4de7d498b28
4
+ data.tar.gz: 297fa1eead0ae45858a6716f1a0165bbc3a49fd4
5
5
  SHA512:
6
- metadata.gz: 5b11883f9451641ca7896bade1e9792cf4490662512ad64008fd717b7e60a4837e4641a373eeb196d88bb109dd8b89ab3662b35a76fb0467ff7afdccfa5ddc5e
7
- data.tar.gz: 1feb3e40c53a6d26d3fd49b072c6d4f702df478bffbb490185f70c08fefdd45bd8964a0dbaff91796bd4957bb08100a245b65da8b6ff1eaa6e4ba1d60c6e6d4f
6
+ metadata.gz: 6dfeb77f03e9336c843b4ebcc47dcf7fdf5725bc35855f333397723871c61037c8a0755d12b4bacc352c07bc4421bb490f0714404334fb076aad47bec84c827d
7
+ data.tar.gz: 15b4c571acf51b7a4f4adaab89e34831ee0b922c30d23f6a4f8f9f3fc7335f88f8819310b070647d97d654e41f0d24553c2d5ab4826a16ab7e6496e03bae9df1
@@ -13,6 +13,8 @@ module Ruote
13
13
  def initialize(options = {})
14
14
 
15
15
  @table_name = options['table_name'] || ('documents').to_sym
16
+ @ip = Ruote.local_ip
17
+ @worker = [current_worker_name, @ip.gsub(/\./, '_'), $$.to_s].join('/')
16
18
 
17
19
  replace_engine_configuration(options)
18
20
  end
@@ -34,7 +36,7 @@ module Ruote
34
36
  um.table table
35
37
  um.where table[:typ].eq(doc['type'].to_s).and(table[:ide].eq(doc['_id'].to_s).and(table[:rev].eq(1).and(table[:worker].eq(nil))))
36
38
  um.set [
37
- [table[:worker], worker]
39
+ [table[:worker], @worker]
38
40
  ]
39
41
  connection.update(um.to_sql) > 0
40
42
  end
@@ -44,7 +46,7 @@ module Ruote
44
46
  def done(doc)
45
47
  dm = Arel::DeleteManager.new Arel::Table.engine
46
48
  dm.from table
47
- dm.where table[:typ].eq(doc['type']).and(table[:ide].eq(doc['_id']).and(table[:rev].eq(1).and(table[:worker].eq(worker))))
49
+ dm.where table[:typ].eq(doc['type']).and(table[:ide].eq(doc['_id']).and(table[:rev].eq(1).and(table[:worker].eq(@worker))))
48
50
  connection.delete(dm)
49
51
  end
50
52
 
@@ -63,8 +65,6 @@ module Ruote
63
65
 
64
66
  def put(doc, opts={})
65
67
 
66
- cache_clear(doc)
67
-
68
68
  if doc['_rev']
69
69
 
70
70
  d = get(doc['type'], doc['_id'])
@@ -96,7 +96,7 @@ module Ruote
96
96
  end
97
97
 
98
98
  def get(type, key)
99
- cache_get(type, key) || do_get(type, key)
99
+ do_get(type, key)
100
100
  end
101
101
 
102
102
  def delete(doc)
@@ -104,8 +104,7 @@ module Ruote
104
104
 
105
105
  raise ArgumentError.new('no _rev for doc') unless doc['_rev']
106
106
 
107
- cache_clear(doc)
108
- # usually not necessary, adding it not to forget it later on
107
+ # usually not necessary, adding it not to forget it later on
109
108
 
110
109
  dm = Arel::DeleteManager.new Arel::Table.engine
111
110
  dm.from table
@@ -121,11 +120,6 @@ module Ruote
121
120
 
122
121
  def get_many(type, key=nil, opts={})
123
122
 
124
- ###
125
-
126
- cached = cache_get_many(type, key, opts)
127
- return cached if cached
128
-
129
123
  ds = table[:typ].eq(type)
130
124
 
131
125
  keys = key ? Array(key) : nil
@@ -257,11 +251,6 @@ module Ruote
257
251
  select_last_revs(connection.select_all(ds.project('*'))).collect { |d| Ruote::Workitem.from_json(d['doc']) }
258
252
  end
259
253
 
260
- def begin_step
261
-
262
- prepare_cache
263
- end
264
-
265
254
  protected
266
255
 
267
256
  def decode_doc(doc)
@@ -328,80 +317,6 @@ module Ruote
328
317
  }
329
318
  end
330
319
 
331
- #--
332
- # worker step cache
333
- #
334
- # in order to cut down the number of selects, do one select with
335
- # all the information the worker needs for one step of work
336
- #++
337
-
338
-
339
- CACHED_TYPES = %w[ msgs schedules configurations variables ]
340
-
341
- # One select to grab in all the info necessary for a worker step
342
- # (expressions excepted).
343
- #
344
- def prepare_cache
345
-
346
- CACHED_TYPES.each { |t| cache[t] = {} }
347
-
348
- ds = table.where(table[:typ].in(CACHED_TYPES)).
349
- project(table[:ide], table[:typ], table[:doc]).
350
- order(table[:ide].asc, table[:rev].desc)
351
-
352
- connection.select_all(ds).each do |d|
353
- (cache[d['typ']] ||= {})[d['ide']] ||= decode_doc(d)
354
- end
355
-
356
- cache['variables']['trackers'] ||=
357
- { '_id' => 'trackers', 'type' => 'variables', 'trackers' => {} }
358
- end
359
-
360
- # Ask the cache for a doc. Returns nil if it's not cached.
361
- #
362
- def cache_get(type, key)
363
-
364
- (cache[type] || {})[key]
365
- end
366
-
367
- # Ask the cache for a set of documents. Returns nil if it's not cached
368
- # or caching is not OK.
369
- #
370
- def cache_get_many(type, keys, options)
371
-
372
- if !options[:batch] && CACHED_TYPES.include?(type) && cache[type]
373
- cache[type].values
374
- else
375
- nil
376
- end
377
- end
378
-
379
- # Removes a document from the cache.
380
- #
381
- def cache_clear(doc)
382
-
383
- (cache[doc['type']] || {}).delete(doc['_id'])
384
- end
385
-
386
- # Returns the cache for the given thread. Returns {} if there is no
387
- # cache available.
388
- #
389
- def cache
390
-
391
- worker = Thread.current['ruote_worker']
392
-
393
- return {} unless worker
394
-
395
- (Thread.current["cache_#{worker.name}"] ||= {})
396
- end
397
-
398
-
399
- # def do_delete(doc)
400
- # Document.delete_all(
401
- # :ide => doc['_id'], :typ => doc['type'], :rev => doc['_rev'].to_i
402
- # )
403
- # end
404
-
405
320
  private
406
321
  def table
407
322
  @table ||= ::Arel::Table.new @table_name
@@ -411,12 +326,13 @@ module Ruote
411
326
  ::ActiveRecord::Base.connection
412
327
  end
413
328
 
414
- def worker
329
+ def current_worker_name
415
330
  worker = Thread.current['ruote_worker']
416
331
  if worker
417
332
  worker.name
418
333
  end || 'worker'
419
334
  end
335
+
420
336
  end
421
337
  end
422
338
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruote-ar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - pedroteixeira
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-06 00:00:00.000000000 Z
12
+ date: 2014-07-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport