Hello community,
here is the log from the commit of package rubygem-web-console for
openSUSE:Factory checked in at 2018-09-20 11:41:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-web-console (Old)
and /work/SRC/openSUSE:Factory/.rubygem-web-console.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-web-console"
Thu Sep 20 11:41:48 2018 rev:17 rq:635255 version:3.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-web-console/rubygem-web-console.changes
2018-05-06 15:01:56.371988647 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-web-console.new/rubygem-web-console.changes
2018-09-20 11:41:50.756842928 +0200
@@ -1,0 +2,12 @@
+Wed Sep 5 10:47:25 UTC 2018 - [email protected]
+
+- updated to version 3.7.0
+ see installed CHANGELOG.markdown
+
+ ## 3.7.0
+
+ * [#263](https://github.com/rails/web-console/pull/263) Show binding changes
([@causztic])
+ * [#258](https://github.com/rails/web-console/pull/258) Support Ctrl-A,
Ctrl-W and Ctrl-U ([@gsamokovarov])
+ * [#257](https://github.com/rails/web-console/pull/257) Always try to keep
the console underneath the website content ([@gsamokovarov])
+
+-------------------------------------------------------------------
Old:
----
web-console-3.6.2.gem
New:
----
web-console-3.7.0.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-web-console.spec ++++++
--- /var/tmp/diff_new_pack.O0Psws/_old 2018-09-20 11:41:51.412842543 +0200
+++ /var/tmp/diff_new_pack.O0Psws/_new 2018-09-20 11:41:51.416842540 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-web-console
-Version: 3.6.2
+Version: 3.7.0
Release: 0
%define mod_name web-console
%define mod_full_name %{mod_name}-%{version}
++++++ web-console-3.6.2.gem -> web-console-3.7.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.markdown new/CHANGELOG.markdown
--- old/CHANGELOG.markdown 2018-04-29 20:40:18.000000000 +0200
+++ new/CHANGELOG.markdown 2018-09-02 21:44:49.000000000 +0200
@@ -2,6 +2,12 @@
## master (unreleased)
+## 3.7.0
+
+* [#263](https://github.com/rails/web-console/pull/263) Show binding changes
([@causztic])
+* [#258](https://github.com/rails/web-console/pull/258) Support Ctrl-A, Ctrl-W
and Ctrl-U ([@gsamokovarov])
+* [#257](https://github.com/rails/web-console/pull/257) Always try to keep the
console underneath the website content ([@gsamokovarov])
+
## 3.6.2
* [#255](https://github.com/rails/web-console/pull/255) Fix the truncated HTML
body, because of wrong Content-Length header ([@timomeh])
@@ -131,3 +137,4 @@
[@ybart]: https://github.com/ybart
[@fl0l0u]: https://github.com/fl0l0u
[@timomeh]: https://github.com/timomeh
+[@causztic]: https://github.com/causztic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/README.markdown new/README.markdown
--- old/README.markdown 2018-04-29 20:40:18.000000000 +0200
+++ new/README.markdown 2018-09-02 21:44:49.000000000 +0200
@@ -94,7 +94,7 @@
> Cannot render console from 192.168.1.133! Allowed networks:
> 127.0.0.0/127.255.255.255, ::1
-If you don't wanna see this message anymore, set this option to `false`:
+If you don't want to see this message anymore, set this option to `false`:
```ruby
Rails.application.configure do
@@ -104,7 +104,7 @@
### config.web_console.template_paths
-If you wanna style the console yourself, you can place `style.css` at a
+If you want to style the console yourself, you can place `style.css` at a
directory pointed by `config.web_console.template_paths`:
```ruby
@@ -113,13 +113,13 @@
end
```
-You may wanna check the [templates] folder at the source tree for the files you
+You may want to check the [templates] folder at the source tree for the files
you
may override.
### config.web_console.mount_point
Usually the middleware of _Web Console_ is mounted at `/__web_console`.
-If you wanna change the path for some reasons, you can specify it
+If you want to change the path for some reasons, you can specify it
by `config.web_console.mount_point`:
```ruby
@@ -137,7 +137,7 @@
If you miss this feature, check out [rvt].
-### Why I constantly get unavailable session errors?
+### Why do I constantly get unavailable session errors?
All of _Web Console_ sessions are stored in memory. If you happen to run on a
multi-process server (like Unicorn) you may get unavailable session errors
@@ -146,12 +146,17 @@
To avoid that, if you use such servers in development, configure them so they
server requests only out of one process.
+#### Passenger
+
+Enable sticky sessions for [Passenger on Nginx] or [Passenger on Apache] to
+prevent unavailable session errors.
+
### How to inspect local and instance variables?
The interactive console executes Ruby code. Invoking `instance_variables` and
`local_variables` will give you what you want.
-### Why does console only appear on error pages but not when I call it?
+### Why does the console only appear on error pages but not when I call it?
This can be happening if you are using `Rack::Deflater`. Be sure that
`WebConsole::Middleware` is used after `Rack::Deflater`. The easiest way to do
@@ -163,7 +168,7 @@
end
```
-### Why I'm getting an undefined method `web_console`?
+### Why am I getting an undefined method `web_console`?
Make sure your configuration lives in `config/environments/development.rb`.
@@ -183,3 +188,5 @@
[templates]:
https://github.com/rails/web-console/tree/master/lib/web_console/templates
[rvt]: https://github.com/gsamokovarov/rvt
[contributors]: https://github.com/rails/web-console/graphs/contributors
+[Passenger on Nginx]:
https://www.phusionpassenger.com/library/config/nginx/reference/#passengerstickysessions
+[Passenger on Apache]:
https://www.phusionpassenger.com/library/config/apache/reference/#passengerstickysessions
Binary 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/templates/console.js.erb
new/lib/web_console/templates/console.js.erb
--- old/lib/web_console/templates/console.js.erb 2018-04-29
20:40:18.000000000 +0200
+++ new/lib/web_console/templates/console.js.erb 2018-09-02
21:44:49.000000000 +0200
@@ -603,6 +603,12 @@
return consoleMessage;
};
+REPLConsole.prototype.writeNotification = function(output) {
+ var consoleMessage = this.writeOutput(output);
+ addClass(consoleMessage, "notification-message");
+ return consoleMessage;
+};
+
REPLConsole.prototype.onEnterKey = function() {
var input = this._input;
@@ -654,57 +660,85 @@
}
switch (ev.keyCode) {
- case 69:
- // Ctrl-E
+ case 65: // Ctrl-A
+ if (ev.ctrlKey) {
+ this.setInput(this._input, 0);
+ ev.preventDefault();
+ }
+ break;
+
+ case 69: // Ctrl-E
if (ev.ctrlKey) {
this.onTabKey();
ev.preventDefault();
}
break;
- case 9:
- // Tab
+
+ case 87: // Ctrl-W
+ if (ev.ctrlKey) {
+ this.deleteWord();
+ ev.preventDefault();
+ }
+ break;
+
+ case 85: // Ctrl-U
+ if (ev.ctrlKey) {
+ this.deleteLine();
+ ev.preventDefault();
+ }
+ break;
+
+ case 69: // Ctrl-E
+ if (ev.ctrlKey) {
+ this.onTabKey();
+ ev.preventDefault();
+ }
+ break;
+
+ case 80: // Ctrl-P
+ if (! ev.ctrlKey) break;
+
+ case 78: // Ctrl-N
+ if (! ev.ctrlKey) break;
+
+ case 9: // Tab
this.onTabKey();
ev.preventDefault();
break;
- case 13:
- // Enter key
+
+ case 13: // Enter key
this.onEnterKey();
ev.preventDefault();
break;
- case 80:
- // Ctrl-P
- if (! ev.ctrlKey) break;
- case 38:
- // Up arrow
+
+ case 38: // Up arrow
this.onNavigateHistory(-1);
ev.preventDefault();
break;
- case 78:
- // Ctrl-N
- if (! ev.ctrlKey) break;
- case 40:
- // Down arrow
+
+ case 40: // Down arrow
this.onNavigateHistory(1);
ev.preventDefault();
break;
- case 37:
- // Left arrow
+
+ case 37: // Left arrow
var caretPos = this._caretPos > 0 ? this._caretPos - 1 : this._caretPos;
this.setInput(this._input, caretPos);
ev.preventDefault();
break;
- case 39:
- // Right arrow
+
+ case 39: // Right arrow
var length = this._input.length;
var caretPos = this._caretPos < length ? this._caretPos + 1 :
this._caretPos;
this.setInput(this._input, caretPos);
ev.preventDefault();
break;
- case 8:
- // Delete
+
+ case 8: // Delete
this.deleteAtCurrent();
ev.preventDefault();
break;
+
default:
break;
}
@@ -758,6 +792,47 @@
};
/**
+ * Deletes the current line.
+ */
+REPLConsole.prototype.deleteLine = function() {
+ if (this._caretPos > 0) {
+ this.setInput("", 0);
+
+ if (!this._input) {
+ this.autocomplete && this.autocomplete.cancel();
+ this.autocomplete = false;
+ }
+ }
+};
+
+/**
+ * Deletes the current word.
+ */
+REPLConsole.prototype.deleteWord = function() {
+ if (this._caretPos > 0) {
+ var i = 1, current = this._caretPos;
+ while (this._input[current - i++] == " ");
+
+ var deleteIndex = 0;
+ for (; current - i > 0; i++) {
+ if (this._input[current - i] == " ") {
+ deleteIndex = current - i;
+ break;
+ }
+ }
+
+ var before = this._input.substring(0, deleteIndex);
+ var after = this._input.substring(current, this._input.length);
+ this.setInput(before + after, deleteIndex);
+
+ if (!this._input) {
+ this.autocomplete && this.autocomplete.cancel();
+ this.autocomplete = false;
+ }
+ }
+};
+
+/**
* Insert a character at the current position.
*/
REPLConsole.prototype.insertAtCurrent = function(char) {
@@ -795,11 +870,16 @@
this.outer.scrollTop = this.outer.scrollHeight;
};
-// Change the binding of the console
+// Change the binding of the console.
REPLConsole.prototype.switchBindingTo = function(frameId, callback) {
var url = this.getSessionUrl('trace');
var params = "frame_id=" + encodeURIComponent(frameId);
- postRequest(url, params, callback);
+
+ var _this = this;
+ postRequest(url, params, function() {
+ var text = "Context has changed to: " + callback();
+ _this.writeNotification(text);
+ });
};
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/templates/error_page.js.erb
new/lib/web_console/templates/error_page.js.erb
--- old/lib/web_console/templates/error_page.js.erb 2018-04-29
20:40:18.000000000 +0200
+++ new/lib/web_console/templates/error_page.js.erb 2018-09-02
21:44:49.000000000 +0200
@@ -11,12 +11,9 @@
// Change the binding of the console.
changeBinding(frameId, function() {
- if (selectedFrame) {
- selectedFrame.className = selectedFrame.className.replace("selected",
"");
- }
-
- target.className += " selected";
+ // Rails already handles toggling the select class
selectedFrame = target;
+ return target.innerHTML;
});
// Change the extracted source code
@@ -24,6 +21,7 @@
});
}
+// Change the binding of the current session and prompt the user.
function changeBinding(frameId, callback) {
REPLConsole.currentSession.switchBindingTo(frameId, callback);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/templates/index.html.erb
new/lib/web_console/templates/index.html.erb
--- old/lib/web_console/templates/index.html.erb 2018-04-29
20:40:18.000000000 +0200
+++ new/lib/web_console/templates/index.html.erb 2018-09-02
21:44:49.000000000 +0200
@@ -6,3 +6,7 @@
<% only_on_error_page do %>
<%= render_javascript 'error_page' %>
<% end %>
+
+<% only_on_regular_page do %>
+ <%= render_javascript 'regular_page' %>
+<% end %>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/templates/regular_page.js.erb
new/lib/web_console/templates/regular_page.js.erb
--- old/lib/web_console/templates/regular_page.js.erb 1970-01-01
01:00:00.000000000 +0100
+++ new/lib/web_console/templates/regular_page.js.erb 2018-09-02
21:44:49.000000000 +0200
@@ -0,0 +1,24 @@
+// Push the error page body upwards the size of the console.
+document.addEventListener('DOMContentLoaded', function() {
+ var consoleElement = document.getElementById('console');
+ var resizerElement = consoleElement.getElementsByClassName('resizer')[0];
+ var bodyElement = document.body;
+
+ function setBodyElementBottomMargin(pixels) {
+ bodyElement.style.marginBottom = pixels + 'px';
+ }
+
+ var currentConsoleElementHeight = consoleElement.offsetHeight;
+ setBodyElementBottomMargin(currentConsoleElementHeight);
+
+ resizerElement.addEventListener('mousedown', function(event) {
+ function recordConsoleElementHeight(event) {
+ resizerElement.removeEventListener('mouseup',
recordConsoleElementHeight);
+
+ var currentConsoleElementHeight = consoleElement.offsetHeight;
+ setBodyElementBottomMargin(currentConsoleElementHeight);
+ }
+
+ resizerElement.addEventListener('mouseup', recordConsoleElementHeight);
+ });
+});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/templates/style.css.erb
new/lib/web_console/templates/style.css.erb
--- old/lib/web_console/templates/style.css.erb 2018-04-29 20:40:18.000000000
+0200
+++ new/lib/web_console/templates/style.css.erb 2018-09-02 21:44:49.000000000
+0200
@@ -10,7 +10,8 @@
.console .console-inner { font-family: monospace; font-size: 11px; width:
100%; height: 100%; overflow: none; background: #333; }
.console .console-prompt-box { color: #FFF; }
.console .console-message { color: #1AD027; margin: 0; border: 0; white-space:
pre-wrap; background-color: #333; padding: 0; }
-.console .console-message.error-message { color: #fc9; }
+.console .console-message.error-message { color: #FC9; }
+.console .console-message.notification-message { color: #99F; }
.console .console-message.auto-complete { word-break: break-all; }
.console .console-message.auto-complete .keyword { margin-right: 11px; }
.console .console-message.auto-complete .keyword.selected { background: #FFF;
color: #000; }
@@ -21,8 +22,8 @@
.console .resizer { background: #333; width: 100%; height: 4px; cursor:
ns-resize; }
.console .console-actions { padding-right: 3px; }
.console .console-actions .button { float: left; }
-.console .button { cursor: pointer; border-radius: 1px; font-family:
monospace; font-size: 13px; width: 14px; height: 14px; line-height: 14px;
text-align: center; color: #ccc; }
-.console .button:hover { background: #666; color: #fff; }
+.console .button { cursor: pointer; border-radius: 1px; font-family:
monospace; font-size: 13px; width: 14px; height: 14px; line-height: 14px;
text-align: center; color: #CCC; }
+.console .button:hover { background: #666; color: #FFF; }
.console .button.close-button:hover { background: #966; }
.console .clipboard { height: 0px; padding: 0px; margin: 0px; width: 0px;
margin-left: -1000px; }
.console .console-prompt-label { display: inline; color: #FFF; background:
none repeat scroll 0% 0% #333; border: 0; padding: 0; }
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 2018-04-29 20:40:18.000000000 +0200
+++ new/lib/web_console/version.rb 2018-09-02 21:44:49.000000000 +0200
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module WebConsole
- VERSION = "3.6.2"
+ VERSION = "3.7.0"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/web_console/view.rb new/lib/web_console/view.rb
--- old/lib/web_console/view.rb 2018-04-29 20:40:18.000000000 +0200
+++ new/lib/web_console/view.rb 2018-09-02 21:44:49.000000000 +0200
@@ -10,6 +10,11 @@
yield if Thread.current[:__web_console_exception].present?
end
+ # Execute a block only on regular, non-error, pages.
+ def only_on_regular_page(*args)
+ yield if Thread.current[:__web_console_binding].present?
+ end
+
# Render JavaScript inside a script tag and a closure.
#
# This one lets write JavaScript that will automatically get wrapped in a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2018-04-29 20:40:18.000000000 +0200
+++ new/metadata 2018-09-02 21:44:49.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: web-console
version: !ruby/object:Gem::Version
- version: 3.6.2
+ version: 3.7.0
platform: ruby
authors:
- Charlie Somerville
@@ -11,7 +11,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2018-04-29 00:00:00.000000000 Z
+date: 2018-09-02 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: railties
@@ -108,6 +108,7 @@
- lib/web_console/templates/layouts/inlined_string.erb
- lib/web_console/templates/layouts/javascript.erb
- lib/web_console/templates/main.js.erb
+- lib/web_console/templates/regular_page.js.erb
- lib/web_console/templates/style.css.erb
- lib/web_console/testing/erb_precompiler.rb
- lib/web_console/testing/fake_middleware.rb
@@ -136,7 +137,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.7.3
+rubygems_version: 2.7.6
signing_key:
specification_version: 4
summary: A debugging tool for your Ruby on Rails applications.