Sha256: bdf08c637132a5f8de8d09d0c23d17c6780003604b0a56eb7a77848bfb8130c9

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module Lamby
  module Debug
    include Lamby::SamHelpers

    extend self

    def on?(event)
      params = event['multiValueQueryStringParameters'] || event['queryStringParameters']
      (development? || ENV['LAMBY_DEBUG']) && params && params['debug'] == '1'
    end

    def call(event, context, env)
      [ 200, { 'Content-Type' => 'text/html' }, [body(event, context, env)] ]
    end

    private

    def body(event, context, env)
      <<-HTML
        <!DOCTYPE html>
        <html>
          <body>
            <h1>Lamby Debug Response</h1>
            <h2>Event</h2>
            <pre>
              #{JSON.pretty_generate(event)}
            </pre>
            <h2>Rack Env</h2>
            <pre>
              #{JSON.pretty_generate(env)}
            </pre>
            <h2>#{context.class.name}</h2>
            <code>
              #{CGI::escapeHTML(context.inspect)}
            </code>
            <h2>Environment</h2>
            <pre>
              #{sam_local? ? JSON.pretty_generate(ENV.to_h) : 'N/A'}
            </pre>
          </body>
        </html>
      HTML
    end

    def development?
      ENV
        .slice('RACK_ENV', 'RAILS_ENV')
        .values
        .any? { |v| v.to_s.casecmp('development').zero? }
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lamby-2.2.1 lib/lamby/debug.rb
lamby-2.2.0 lib/lamby/debug.rb