ixtlan-audit 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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