Sha256: afada19d4642691ce440f5e09f5477e5f1fe85d63861ecf0d65606aad753044a

Contents?: true

Size: 1.48 KB

Versions: 14

Compression:

Stored size: 1.48 KB

Contents

require 'logger'
require 'pp'

module ConvenientService
  module Dependencies
    module Extractions
      module RubyMiddleware
        ##
        # https://github.com/marian13/ruby-middleware/blob/v0.4.2/lib/middleware/logger.rb
        #
        module Middleware

          class Logger
            def initialize app, logger, name = nil
              @app = app
              @write_to = logger
              @middleware_name = name
            end

            def call env
              write(
                  way_in_message(
                      next_middleware_name, env
              ))

              time = Time.now

              @app.call(env).tap { |env|
                write(
                    way_out_message(
                        next_middleware_name, (Time.now - time) * 1000.0, env
                ))
              }
            end

            def next_middleware_name
              @app.class.name
            end

            def pretty_print item
              ->(out){ PP.pp(item, out) }.('')
            end

            def way_in_message name, env
              ' %s has been called with: %s' % [name, pretty_print(env)]
            end

            def way_out_message name, time, value
              ' %s finished in %.0f ms and returned: %s' % [name, time, pretty_print(value)]
            end

            def write msg
              @write_to.add(::Logger::INFO, msg.slice(0, 255).strip!, @middleware_name)
            end
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
convenient_service-0.11.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.10.1 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.10.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.9.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.8.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.7.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.6.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.5.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.4.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.3.1 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.3.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.2.1 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.2.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb
convenient_service-0.1.0 lib/convenient_service/dependencies/extractions/ruby_middleware/middleware/logger.rb