rails-web-console 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,12 @@
1
+ Console
2
+ =======
3
+
4
+ A Rails 3 plugin for running Ruby scripts on the browser in the context of a controller action.
5
+
6
+ Just put it in your vendor/plugins/console. For instance:
7
+
8
+ git submodule add git://github.com/rosenfeld/rails-web-console.git vendor/plugins/console
9
+
10
+ Then, access "/console" in your browser.
11
+
12
+ Copyright (c) 2010 [Rodrigo Rosenfeld Rosas], released under the MIT license
@@ -0,0 +1,20 @@
1
+ require 'stringio'
2
+ class ConsoleController < ApplicationController
3
+ def index
4
+ end
5
+
6
+ def run
7
+ session[:script] = params[:script]
8
+ stdout_orig = $stdout
9
+ $stdout = StringIO.new
10
+ begin
11
+ result_eval = eval params[:script], binding
12
+ $stdout.rewind
13
+ result = %Q{<div class="stdout">#{$stdout.read}</div><div class="return">#{result_eval.inspect}</div>}
14
+ rescue Exception => e
15
+ result = e.to_s
16
+ end
17
+ $stdout = stdout_orig
18
+ render text: result.gsub("\n", "<br />\n")
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ <textarea id="script" rows="10" cols="80"><%= session[:script] %></textarea>
2
+ <div><input type="button" value="Clear" id="clearResults" /><input type="button" value="Run" id="runScript" /></div>
3
+ <div id="results"></div>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Console</title>
5
+ <%= javascript_include_tag 'http://code.jquery.com/jquery-1.4.2.min.js' %>
6
+ <%= javascript_include_tag 'console' %>
7
+ <%= stylesheet_link_tag 'console' %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ Rails::Application.routes.draw do
2
+ get 'console' => 'console#index'
3
+ post 'console/run' => 'console#run'
4
+ end
data/lib/console.rb ADDED
@@ -0,0 +1,7 @@
1
+ module Console
2
+ class Engine < Rails::Engine
3
+ # initializer "static assets" do |app|
4
+ # app.middleware.use ::ActionDispatch::Static, "#{root}/public"
5
+ # end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ jQuery(function($) {
2
+ $('#clearResults').click(function() { $('#results').empty() })
3
+ $('#runScript').click(function() {
4
+ $.post('/console/run', {script: $('#script').val()}, function(data) {
5
+ $('<div/>').attr('class', 'console_result').html(data).appendTo('#results')
6
+ })
7
+ })
8
+ })
@@ -0,0 +1,10 @@
1
+ #script {width: 100%}
2
+ .console_result {
3
+ background-color: black;
4
+ color: white;
5
+ margin: 1em 0;
6
+ }
7
+
8
+ .return {
9
+ background-color: blue;
10
+ }
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-web-console
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Rodrigo Rosenfeld Rosas
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-06 00:00:00 -02:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description:
22
+ email: rr_rosas@yahoo.com.br
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README
29
+ files:
30
+ - app/controllers/console_controller.rb
31
+ - app/views/console/index.html.erb
32
+ - app/views/layouts/console.html.erb
33
+ - config/routes.rb
34
+ - lib/console.rb
35
+ - public/javascripts/console.js
36
+ - public/stylesheets/console.css
37
+ - README
38
+ has_rdoc: true
39
+ homepage:
40
+ licenses: []
41
+
42
+ post_install_message:
43
+ rdoc_options:
44
+ - --charset=UTF-8
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ segments:
53
+ - 0
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.3.7
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: A web console for Rails
70
+ test_files: []
71
+