debug-extras 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14e2c55279e756d504c63b08080e72b437b1c03b
4
- data.tar.gz: 73bd3393a3da417f47269402e0cba3f3acbc6781
3
+ metadata.gz: e28babbb91f3d8087f3fed430c67c8c4f6ab32d6
4
+ data.tar.gz: 29c8e723fc8c897a55150d4ebe5e81c0a6146adb
5
5
  SHA512:
6
- metadata.gz: e082f863b425918c929bd0ebdbc4ffeacec52cbaff671138bf1d056662269ff0885fe6f9db890eb9868b9deb8702b831276b09964a905a6faea948b0caf62e7e
7
- data.tar.gz: 6acdadaf4797f444d7cd4b963476eb619571a126d583a21027caa687bba898f86b69669333ca55fa5c4d49b9a26e621e9ab82b6aa62103bbba601d2accfae868
6
+ metadata.gz: 31b4776464461e21d70791796ee805bd7282a47d48cd3a31ce94ea4fa0a36f7414ec475750b72b222febac4451732b281bf1d8acb34299b9d480d3f631f7f01e
7
+ data.tar.gz: f9ff33003fbb0559a1100ab9bd3ec051b3c9ddf9a95008e8e035fece2adab39f5446363c7e296a31135eddf237122a5a82874d69583748108e063ac394017dcc
data/lib/debug-extras.rb CHANGED
@@ -1,17 +1,22 @@
1
- require 'debug_extras/version'
2
- require 'active_support/concern'
3
- require 'active_support/core_ext/string/output_safety'
4
- require 'active_support/lazy_load_hooks'
5
- require 'awesome_print'
1
+ require "debug_extras/version"
2
+ require "active_support/concern"
3
+ require "active_support/core_ext/string/output_safety"
4
+ require "active_support/dependencies/autoload"
5
+ require "active_support/lazy_load_hooks"
6
+ require "action_view/helpers/output_safety_helper"
7
+ require "awesome_print"
8
+ require "debug_extras/middleware"
9
+ require "debug_extras/core_ext/object"
10
+ require "debug_extras/helpers/view_helpers"
6
11
 
7
12
  module DebugExtras
13
+ extend ActiveSupport::Autoload
14
+
15
+ autoload :Settings
16
+
8
17
  ActiveSupport.on_load :action_view do
9
- require 'debug_extras/helpers/view_helpers'
10
18
  ActionView::Base.send :include, DebugExtras::Helpers::ViewHelpers
11
19
  end
12
-
13
- ActiveSupport.on_load :action_controller_base do
14
- require 'debug_extras/helpers/controller_helpers'
15
- ActionController::Base.send :include, DebugExtras::Helpers::ControllerHelpers
16
- end
17
20
  end
21
+
22
+ require "debug_extras/railtie" if defined? Rails::Railtie
@@ -0,0 +1,11 @@
1
+ require 'debug_extras/exceptions'
2
+
3
+ class Object
4
+ def dd(message, settings = {})
5
+ prefix = message.class.to_s
6
+ prefix << "##{message.length}" if message.respond_to? :length
7
+ settings.merge! DebugExtras::Settings.ap_options
8
+ output = prefix + message.ai(settings)
9
+ raise DebugExtras::DebugData.new(output)
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ require "erb"
2
+
3
+ module DebugExtras
4
+ class ErrorPage
5
+ def initialize(exception, request_path)
6
+ @exception = exception
7
+ @request_path = request_path
8
+ @template = File.read(File.expand_path("../templates/main.html.erb", __FILE__))
9
+ end
10
+
11
+ def render
12
+ ERB.new(@template).result( binding )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module DebugExtras
2
+ class DebugData < StandardError; end
3
+ end
@@ -5,7 +5,7 @@ module DebugExtras
5
5
 
6
6
  module VERSION
7
7
  MAJOR = 0
8
- MINOR = 1
8
+ MINOR = 2
9
9
  TINY = 0
10
10
 
11
11
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
@@ -1,39 +1,11 @@
1
- module DebugExtras::Helpers
2
- module ViewHelpers
3
- extend ActiveSupport::Concern
1
+ module DebugExtras
2
+ module Helpers
3
+ module ViewHelpers
4
+ extend ActiveSupport::Concern
4
5
 
5
- def rap(object)
6
- raw ap(object)
7
- end
8
-
9
- def object_dump(object, full = false)
10
- output = ''
11
- vars = object.instance_variables
12
-
13
- output << pretty('object class')
14
- output << pretty(object.class)
15
-
16
- output << pretty('instance variables list')
17
- output << pretty(vars)
18
-
19
- output << pretty('instance variables details')
20
- vars.each do |v|
21
- output << pretty(v)
22
- output << pretty(object.instance_variable_get(v))
6
+ def rap(object)
7
+ raw ap(object, DebugExtras::Settings.ap_options)
23
8
  end
24
-
25
- if full
26
- output << pretty('methods list')
27
- output << pretty(object.methods)
28
- end
29
-
30
- raw output
31
- end
32
-
33
- private
34
-
35
- def pretty(string)
36
- string.ai
37
9
  end
38
10
  end
39
11
  end
@@ -0,0 +1,21 @@
1
+ require 'debug_extras/error_page'
2
+
3
+ module DebugExtras
4
+ class Middleware
5
+ def initialize(app)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ env['puma.config'].options.user_options.delete(:app) if env.has_key?('puma.config')
11
+ @app.call env
12
+ rescue StandardError => ex
13
+ if [ex.class, ex.cause.class].map(&:to_s).include? 'DebugExtras::DebugData'
14
+ error_page = ErrorPage.new(ex, Rails.env["PATH_INFO"])
15
+ [200, { "Content-Type" => "text/html; charset=utf-8" }, [error_page.render]]
16
+ else
17
+ @app.call env
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ module DebugExtras
2
+ class Railtie < Rails::Railtie
3
+ initializer "debug_extras.configure_rails_initialization" do
4
+ if defined? ActionDispatch::DebugExceptions
5
+ app.middleware.insert_after ActionDispatch::DebugExceptions, DebugExtras::Middleware
6
+ else
7
+ app.middleware.use DebugExtras::Middleware
8
+ end
9
+ end
10
+
11
+ private
12
+
13
+ def app
14
+ Rails.application
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ module DebugExtras
2
+ module Settings
3
+ class << self
4
+ def ap_options
5
+ { html: true, color: { array: :red } }
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,39 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
6
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
7
+ <title><%= @request_path %></title>
8
+
9
+ <style>
10
+ body {
11
+ margin: 0;
12
+ padding: 15px;
13
+ color: #c52f24;
14
+ font-weight: bold;
15
+ font-size: 12px;
16
+ font-family: Menlo, Consolas, Ubuntu, monospace;
17
+ background: #f5f8fa;
18
+ }
19
+
20
+ .container {
21
+ width: 100%;
22
+ }
23
+
24
+ pre {
25
+ white-space: pre-wrap;
26
+ }
27
+
28
+ kbd {
29
+ background: none;
30
+ shadow: none;
31
+ }
32
+ </style>
33
+ </head>
34
+ <body>
35
+ <div class="container">
36
+ <%= @exception.message %>
37
+ </div>
38
+ </body>
39
+ </html>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debug-extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Avgustov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-03 00:00:00.000000000 Z
11
+ date: 2017-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,9 +122,15 @@ files:
122
122
  - Rakefile
123
123
  - debug-extras.gemspec
124
124
  - lib/debug-extras.rb
125
+ - lib/debug_extras/core_ext/object.rb
126
+ - lib/debug_extras/error_page.rb
127
+ - lib/debug_extras/exceptions.rb
125
128
  - lib/debug_extras/gem_version.rb
126
- - lib/debug_extras/helpers/controller_helpers.rb
127
129
  - lib/debug_extras/helpers/view_helpers.rb
130
+ - lib/debug_extras/middleware.rb
131
+ - lib/debug_extras/railtie.rb
132
+ - lib/debug_extras/settings.rb
133
+ - lib/debug_extras/templates/main.html.erb
128
134
  - lib/debug_extras/version.rb
129
135
  homepage: https://github.com/vavgustov/debug-extras
130
136
  licenses:
@@ -1,9 +0,0 @@
1
- module DebugExtras::Helpers
2
- module ControllerHelpers
3
- extend ActiveSupport::Concern
4
-
5
- def debug(data)
6
- abort data.ai(html: true)
7
- end
8
- end
9
- end