ixtlan-audit 0.4.0 → 0.4.1

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.
@@ -27,9 +27,16 @@ module Ixtlan
27
27
  if defined? ::Slf4r
28
28
  include ::Slf4r::Logger
29
29
  else
30
- require 'logger'
30
+ class Log
31
+ def info( msg )
32
+ puts "[Ixtlan::Audits] #{msg}"
33
+ end
34
+ def warn( msg )
35
+ warn "[Ixtlan::Audits] #{msg}"
36
+ end
37
+ end
31
38
  def logger
32
- @logger ||= Logger.new( STDOUT )
39
+ @logger ||= Log.new
33
40
  end
34
41
  end
35
42
 
@@ -87,9 +94,9 @@ module Ixtlan
87
94
  list.last
88
95
  end
89
96
 
90
- def save_all
97
+ def save_all( l = list )
91
98
  daily_cleanup
92
- list.each do |audit|
99
+ l.each do |audit|
93
100
  begin
94
101
  audit.save
95
102
  if ( audit.respond_to?( :errors ) && audit.errors.size > 0 )
@@ -22,17 +22,48 @@ module Ixtlan
22
22
  module Audit
23
23
  class Rack
24
24
 
25
+ def self.runner( manager )
26
+ @runner ||= Thread.new do
27
+ while true do
28
+ sleep 1
29
+ while not queue.empty?
30
+ list = queue.pop
31
+ manager.save_all( list )
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ def self.queue
38
+ @queue ||= Queue.new
39
+ end
40
+
25
41
  def initialize(app, audit_manager)
26
42
  @app = app
27
43
  @audit_manager = audit_manager
44
+ self.class.runner( audit_manager )
28
45
  end
29
46
 
30
47
  def call(env)
31
48
  result = @app.call(env)
32
- @audit_manager.save_all
49
+ self.class.queue.push( @audit_manager.send( :list ) )
33
50
  result
34
51
  end
35
52
 
53
+ if defined? Thread
54
+ def save_all
55
+ l = @audit_manager.send :list
56
+ f = Thread.new do
57
+ sleep 0.1
58
+ @audit_manager.save_all( l )
59
+ end
60
+ end
61
+ else
62
+ def save_all
63
+ @audit_manager.save_all
64
+ end
65
+ end
36
66
  end
67
+ Rack.queue
37
68
  end
38
- end
69
+ end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: ixtlan-audit
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.0
5
+ version: 0.4.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Christian Meier
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-30 00:00:00.000000000 Z
12
+ date: 2013-02-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: slf4r