Sha256: 0d9c468a32a54e3eb1fdfd8f96f2d7630974b34a41c9cf59553609b5d187d63f

Contents?: true

Size: 977 Bytes

Versions: 1

Compression:

Stored size: 977 Bytes

Contents

require 'ixtlan/audit/manager'
require 'ixtlan/audit/audit_rack'
require 'ixtlan/audit/user_logger'


module Ixtlan
  module Audit
    class Railtie < ::Rails::Railtie

      config.before_configuration do |app|
        app.config.class.class_eval do
          attr_accessor :audit_manager
        end
        app.config.audit_manager = Manager.new
        ::ActionController::Base.append_after_filter(Ixtlan::Audit::AuditFilter)
        ::ActionController::Base.append_before_filter(Ixtlan::Audit::AuditCleanupFilter)
        app.config.middleware.use Ixtlan::Audit::AuditRack
      end
    end

    class AuditFilter

      def self.logger
        @logger ||= UserLogger.new(Rails.application.config.audit_manager)
      end

      def self.filter(controller)
        logger.log_action(controller)
      end
    end

    
    class AuditCleanupFilter

      def self.filter(controller)
        Rails.application.config.audit_manager.daily_cleanup
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ixtlan-audit-0.1.0 lib/ixtlan/audit/railtie.rb