Hello community,
here is the log from the commit of package rubygem-web-console for
openSUSE:Factory checked in at 2016-04-22 16:24:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-web-console (Old)
and /work/SRC/openSUSE:Factory/.rubygem-web-console.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-web-console"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-web-console/rubygem-web-console.changes
2016-03-17 16:49:24.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.rubygem-web-console.new/rubygem-web-console.changes
2016-04-22 16:24:27.000000000 +0200
@@ -1,0 +2,16 @@
+Tue Apr 12 04:33:31 UTC 2016 - [email protected]
+
+- updated to version 3.1.1
+ see installed CHANGELOG.markdown
+
+ ## 3.1.1
+
+ * [#185](https://github.com/rails/web-console/pull/185) Fix `rails console`
startup ([@gsamokovarov])
+
+ ## 3.1.0
+
+ * [#182](https://github.com/rails/web-console/pull/182) Let `#console` live
in `Kernel` ([@schneems])
+ * [#181](https://github.com/rails/web-console/pull/181) Log internal Web
Console errors ([@gsamokovarov])
+ * [#180](https://github.com/rails/web-console/pull/180) Autoload Web Console
constants for faster Rails boot time ([@herminiotorres])
+
+-------------------------------------------------------------------
Old:
----
web-console-3.0.0.gem
New:
----
web-console-3.1.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-web-console.spec ++++++
--- /var/tmp/diff_new_pack.UV1Ceu/_old 2016-04-22 16:24:27.000000000 +0200
+++ /var/tmp/diff_new_pack.UV1Ceu/_new 2016-04-22 16:24:27.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-web-console
-Version: 3.0.0
+Version: 3.1.1
Release: 0
%define mod_name web-console
%define mod_full_name %{mod_name}-%{version}
@@ -52,7 +52,7 @@
%install
%gem_install \
- --doc-files="MIT-LICENSE" \
+ --doc-files="CHANGELOG.markdown MIT-LICENSE README.markdown" \
-f
%gem_packages
++++++ web-console-3.0.0.gem -> web-console-3.1.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.markdown new/CHANGELOG.markdown
--- old/CHANGELOG.markdown 2015-12-13 17:58:49.000000000 +0100
+++ new/CHANGELOG.markdown 2016-01-28 10:20:38.000000000 +0100
@@ -2,6 +2,16 @@
## master (unreleased)
+## 3.1.1
+
+* [#185](https://github.com/rails/web-console/pull/185) Fix `rails console`
startup ([@gsamokovarov])
+
+## 3.1.0
+
+* [#182](https://github.com/rails/web-console/pull/182) Let `#console` live in
`Kernel` ([@schneems])
+* [#181](https://github.com/rails/web-console/pull/181) Log internal Web
Console errors ([@gsamokovarov])
+* [#180](https://github.com/rails/web-console/pull/180) Autoload Web Console
constants for faster Rails boot time ([@herminiotorres])
+
## 3.0.0
* [#173](https://github.com/rails/web-console/pull/173) Revert "Change
config.development_only default until 4.2.4 is released" ([@gsamokovarov])
@@ -55,3 +65,5 @@
[@parterburn]: https://github.com/parterburn
[@sh19910711]: https://github.com/sh19910711
[@frenesim]: https://github.com/frenesim
+[@herminiotorres]: https://github.com/herminiotorres
+[@schneems]: https://github.com/schneems
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MIT-LICENSE new/MIT-LICENSE
--- old/MIT-LICENSE 2015-12-13 17:58:49.000000000 +0100
+++ new/MIT-LICENSE 2016-01-28 10:20:38.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright 2014 Charlie Somerville, Genadi Samokovarov, Guillermo Iguaran and
Ryan Dao
+Copyright 2014-2016 Charlie Somerville, Genadi Samokovarov, Guillermo Iguaran
and Ryan Dao
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/README.markdown new/README.markdown
--- old/README.markdown 2015-12-13 17:58:49.000000000 +0100
+++ new/README.markdown 2016-01-28 10:20:38.000000000 +0100
@@ -1,7 +1,8 @@
<p align=right>
Documentation for:
<a href=https://github.com/rails/web-console/tree/v1.0.4>v1.0.4</a>
- <a href=https://github.com/rails/web-console/tree/v2.1.3>v2.1.3</a>
+ <a href=https://github.com/rails/web-console/tree/v2.2.1>v2.2.1</a>
+ <a href=https://github.com/rails/web-console/tree/v3.0.0>v3.0.0</a>
</p>
# Web Console [](https://travis-ci.org/rails/web-console)
@@ -67,8 +68,10 @@
end
```
-Only one `console` invocation is allowed per request. If you happen to have
-multiple ones, a `WebConsole::DoubleRenderError` is raised.
+The method is defined in `Kernel` and you can invoke it any application code.
+
+Only one `console` invocation is allowed once per request. If you happen to
+have multiple ones, a `WebConsole::DoubleRenderError` will be raised.
## Configuration
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/extensions.rb
new/lib/web_console/extensions.rb
--- old/lib/web_console/extensions.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/extensions.rb 2016-01-28 10:20:38.000000000 +0100
@@ -1,24 +1,48 @@
-ActionDispatch::DebugExceptions.class_eval do
- def render_exception_with_web_console(request, exception)
- render_exception_without_web_console(request, exception).tap do
- # Retain superficial Rails 4.2 compatibility.
- env = Hash === request ? request : request.env
-
- backtrace_cleaner = env['action_dispatch.backtrace_cleaner']
- error = ActionDispatch::ExceptionWrapper.new(backtrace_cleaner,
exception).exception
-
- # Get the original exception if ExceptionWrapper decides to follow it.
- env['web_console.exception'] = error
-
- # ActionView::Template::Error bypass ExceptionWrapper original
- # exception following. The backtrace in the view is generated from
- # reaching out to original_exception in the view.
- if error.is_a?(ActionView::Template::Error)
- env['web_console.exception'] = error.original_exception
+module Kernel
+ module_function
+
+ # Instructs Web Console to render a console in the specified binding.
+ #
+ # If +bidning+ isn't explicitly given it will default to the binding of the
+ # previous frame. E.g. the one that invoked +console+.
+ #
+ # Raises DoubleRenderError if a double +console+ invocation per request is
+ # detected.
+ def console(binding = WebConsole.caller_bindings.first)
+ raise WebConsole::DoubleRenderError if
Thread.current[:__web_console_binding]
+
+ Thread.current[:__web_console_binding] = binding
+
+ # Make sure nothing is rendered from the view helper. Otherwise
+ # you're gonna see unexpected #<Binding:0x007fee4302b078> in the
+ # templates.
+ nil
+ end
+end
+
+module ActionDispatch
+ class DebugExceptions
+ def render_exception_with_web_console(request, exception)
+ render_exception_without_web_console(request, exception).tap do
+ # Retain superficial Rails 4.2 compatibility.
+ env = Hash === request ? request : request.env
+
+ backtrace_cleaner = env['action_dispatch.backtrace_cleaner']
+ error = ExceptionWrapper.new(backtrace_cleaner, exception).exception
+
+ # Get the original exception if ExceptionWrapper decides to follow it.
+ Thread.current[:__web_console_exception] = error
+
+ # ActionView::Template::Error bypass ExceptionWrapper original
+ # exception following. The backtrace in the view is generated from
+ # reaching out to original_exception in the view.
+ if error.is_a?(ActionView::Template::Error)
+ Thread.current[:__web_console_exception] = error.cause
+ end
end
end
- end
- alias_method :render_exception_without_web_console, :render_exception
- alias_method :render_exception, :render_exception_with_web_console
+ alias_method :render_exception_without_web_console, :render_exception
+ alias_method :render_exception, :render_exception_with_web_console
+ end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/helper.rb
new/lib/web_console/helper.rb
--- old/lib/web_console/helper.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/helper.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-module WebConsole
- module Helper
- # Communicates with the middleware to render a console in a +binding+.
- #
- # If +bidning+ isn't explicitly given, Binding#of_caller will be used to
- # get the binding of the previous frame. E.g. the one that invoked
- # +console+.
- #
- # Raises DoubleRenderError if a double +console+ invocation per request is
- # detected.
- def console(binding = nil)
- raise DoubleRenderError if request.env['web_console.binding']
-
- request.env['web_console.binding'] = binding ||
::WebConsole.caller_bindings.first
-
- # Make sure nothing is rendered from the view helper. Otherwise
- # you're gonna see unexpected #<Binding:0x007fee4302b078> in the
- # templates.
- nil
- end
- end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/integration.rb
new/lib/web_console/integration.rb
--- old/lib/web_console/integration.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/integration.rb 2016-01-28 10:20:38.000000000 +0100
@@ -19,7 +19,7 @@
#
# Every integration should the instance variable.
def bindings
- @bindings || []
+ (defined?(@bindings) && @bindings) || []
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/middleware.rb
new/lib/web_console/middleware.rb
--- old/lib/web_console/middleware.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/middleware.rb 2016-01-28 10:20:38.000000000 +0100
@@ -15,34 +15,40 @@
end
def call(env)
- request = create_regular_or_whiny_request(env)
- return @app.call(env) unless request.from_whitelisted_ip?
+ app_exception = catch :app_exception do
+ request = create_regular_or_whiny_request(env)
+ return call_app(env) unless request.from_whitelisted_ip?
+
+ if id = id_for_repl_session_update(request)
+ return update_repl_session(id, request)
+ elsif id = id_for_repl_session_stack_frame_change(request)
+ return change_stack_trace(id, request)
+ end
+
+ status, headers, body = call_app(env)
+
+ if session = Session.from(Thread.current) and
acceptable_content_type?(headers)
+ response = Response.new(body, status, headers)
+ template = Template.new(env, session)
+
+ response.headers["X-Web-Console-Session-Id"] = session.id
+ response.headers["X-Web-Console-Mount-Point"] = mount_point
+ response.write(template.render('index'))
+ response.finish
+ else
+ [ status, headers, body ]
+ end
+ end
+ rescue => e
+ WebConsole.logger.error("\n#{e.class}: #{e}\n\tfrom
#{e.backtrace.join("\n\tfrom ")}")
+ raise e
+ ensure
+ # Clean up the fiber locals after the session creation. Object#console
+ # uses those to communicate the current binding or exception to the
middleware.
+ Thread.current[:__web_console_exception] = nil
+ Thread.current[:__web_console_binding] = nil
- if id = id_for_repl_session_update(request)
- return update_repl_session(id, request)
- elsif id = id_for_repl_session_stack_frame_change(request)
- return change_stack_trace(id, request)
- end
-
- status, headers, body = @app.call(env)
-
- if exception = env['web_console.exception']
- session = Session.from_exception(exception)
- elsif binding = env['web_console.binding']
- session = Session.from_binding(binding)
- end
-
- if session && acceptable_content_type?(headers)
- response = Response.new(body, status, headers)
- template = Template.new(env, session)
-
- response.headers["X-Web-Console-Session-Id"] = session.id
- response.headers["X-Web-Console-Mount-Point"] = mount_point
- response.write(template.render('index'))
- response.finish
- else
- [ status, headers, body ]
- end
+ raise app_exception if Exception === app_exception
end
private
@@ -120,5 +126,11 @@
{ output: I18n.t('errors.unacceptable_request') }
end
end
+
+ def call_app(env)
+ @app.call(env)
+ rescue => e
+ throw :app_exception, e
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/railtie.rb
new/lib/web_console/railtie.rb
--- old/lib/web_console/railtie.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/railtie.rb 2016-01-28 10:20:38.000000000 +0100
@@ -6,14 +6,11 @@
config.web_console.whitelisted_ips = %w( 127.0.0.1 ::1 )
initializer 'web_console.initialize' do
+ require 'web_console/integration'
require 'web_console/extensions'
- ActiveSupport.on_load(:action_view) do
- ActionView::Base.send(:include, Helper)
- end
-
- ActiveSupport.on_load(:action_controller) do
- ActionController::Base.send(:include, Helper)
+ if logger = ::Rails.logger
+ WebConsole.logger = logger
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/session.rb
new/lib/web_console/session.rb
--- old/lib/web_console/session.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/session.rb 2016-01-28 10:20:38.000000000 +0100
@@ -1,9 +1,9 @@
module WebConsole
- # A session lets you persist wrap an +Evaluator+ instance in memory
- # associated with multiple bindings.
+ # A session lets you persist an +Evaluator+ instance in memory associated
+ # with multiple bindings.
#
# Each newly created session is persisted into memory and you can find it
- # later its +id+.
+ # later by its +id+.
#
# A session may be associated with multiple bindings. This is used by the
# error pages only, as currently, this is the only client that needs to do
@@ -21,14 +21,19 @@
inmemory_storage[id]
end
- # Create a Session from an exception.
- def from_exception(exc)
- new(exc.bindings)
- end
-
- # Create a Session from a single binding.
- def from_binding(binding)
- new(binding)
+ # Create a Session from an binding or exception in a storage.
+ #
+ # The storage is expected to respond to #[]. The binding is expected in
+ # :__web_console_binding and the exception in :__web_console_exception.
+ #
+ # Can return nil, if no binding or exception have been preserved in the
+ # storage.
+ def from(storage)
+ if exc = storage[:__web_console_exception]
+ new(exc.bindings)
+ elsif binding = storage[:__web_console_binding]
+ new(binding)
+ end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/tracer.rb
new/lib/web_console/tracer.rb
--- old/lib/web_console/tracer.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/tracer.rb 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-module WebConsole
- class BindingTracer
- def initialize(exception)
- @bindings = exception.bindings
- @backtrace = exception.backtrace
- end
-
- def binding_for_trace(trace)
- end
- end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/version.rb
new/lib/web_console/version.rb
--- old/lib/web_console/version.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console/version.rb 2016-01-28 10:20:38.000000000 +0100
@@ -1,3 +1,3 @@
module WebConsole
- VERSION = '3.0.0'
+ VERSION = '3.1.1'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console.rb new/lib/web_console.rb
--- old/lib/web_console.rb 2015-12-13 17:58:49.000000000 +0100
+++ new/lib/web_console.rb 2016-01-28 10:20:38.000000000 +0100
@@ -1,23 +1,29 @@
+require 'active_support/dependencies/autoload'
require 'active_support/lazy_load_hooks'
require 'active_support/logger'
-require 'web_console/integration'
-require 'web_console/railtie'
-require 'web_console/errors'
-require 'web_console/helper'
-require 'web_console/evaluator'
-require 'web_console/session'
-require 'web_console/template'
-require 'web_console/middleware'
-require 'web_console/whitelist'
-require 'web_console/request'
-require 'web_console/response'
-require 'web_console/view'
-require 'web_console/whiny_request'
-
module WebConsole
+ extend ActiveSupport::Autoload
+
+ autoload :View
+ autoload :Evaluator
+ autoload :Session
+ autoload :Response
+ autoload :Request
+ autoload :WhinyRequest
+ autoload :Whitelist
+ autoload :Template
+ autoload :Middleware
+
+ autoload_at 'web_console/errors' do
+ autoload :Error
+ autoload :DoubleRenderError
+ end
+
mattr_accessor :logger
@@logger = ActiveSupport::Logger.new($stderr)
ActiveSupport.run_load_hooks(:web_console, self)
end
+
+require 'web_console/railtie'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-12-13 17:58:49.000000000 +0100
+++ new/metadata 2016-01-28 10:20:38.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: web-console
version: !ruby/object:Gem::Version
- version: 3.0.0
+ version: 3.1.1
platform: ruby
authors:
- Charlie Somerville
@@ -11,7 +11,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2015-12-13 00:00:00.000000000 Z
+date: 2016-01-28 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: railties
@@ -74,7 +74,6 @@
- lib/web_console/errors.rb
- lib/web_console/evaluator.rb
- lib/web_console/extensions.rb
-- lib/web_console/helper.rb
- lib/web_console/integration.rb
- lib/web_console/integration/cruby.rb
- lib/web_console/integration/rubinius.rb
@@ -100,7 +99,6 @@
- lib/web_console/testing/erb_precompiler.rb
- lib/web_console/testing/fake_middleware.rb
- lib/web_console/testing/helper.rb
-- lib/web_console/tracer.rb
- lib/web_console/version.rb
- lib/web_console/view.rb
- lib/web_console/whiny_request.rb
@@ -125,7 +123,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.4.5
+rubygems_version: 2.5.1
signing_key:
specification_version: 4
summary: A debugging tool for your Ruby on Rails applications.