An open API service indexing awesome lists of open source software.

https://github.com/cldwalker/tux

Sinatra dressed for interactive ruby - a sinatra shell
https://github.com/cldwalker/tux

Last synced: about 1 year ago
JSON representation

Sinatra dressed for interactive ruby - a sinatra shell

Awesome Lists containing this project

README

          

== Description
Tux dresses up sinatra in a shell. Use it to interact with your helpers, view rendering and
your app's response objects. Tux also gives you commands to view your app's routes and settings.

== Install
Install the gem with:

gem install tux

== Usage

Start with:

$ tux

If your app's config file isn't config.ru, specify with -c

$ tux -c app.ru

To interact with your helpers:

>> app.my_helper_method
...

To interact with any built-in sinatra methods i.e. request and response specific helper
methods:

# depends on request
>> app.uri '/'
=> "http://:/"

# depends on response
>> app.headers
=> {"Content-Type"=>"text/html"}

For the above to work, tux sets up default empty request and response objects. To try the helpers
with custom requests and responses:

>> app.request = Sinatra::Request.new({})
>> app.response = Sinatra::Response.new

To interact with your views:

>> app.erb :my_template
=> 'template rendered'

# also
>> app.haml
>> app.markdown
...

Tux lets you make requests and interact with rack response objects thanks to
{rack-test}[https://github.com/brynary/rack-test]:

>> get '/'
=> #"text/html;charset=utf-8",
"Content-Length"=>"4"}, @errors="127.0.0.1 - - [05/Apr/2011 02:22:27] \"GET / \" 200 4
0.0015\n", @status=200, @original_headers={"Content-Type"=>"text/html;charset=utf-8",
"Content-Length"=>"4"}, @body="dude">

>> puts last_response.body
dude

>> post '/create'
...

To see the full list of rack-test actions you can make

>> rack.actions
=> [:request, :get, :post, :put, :delete, :head, :follow_redirect!, :header, :set_cookie,
:clear_cookies, :authorize, :basic_authorize, :digest_authorize, :last_response, :last_request]

Tux also comes with commands to give you a good overview of your app

>> routes
HEAD "/"
HEAD /book/:id
GET "/"
GET /book/:id

>> settings
absolute_redirects true
add_charset [/^text\//, "application/javascript", "application/xml",
"application/xhtml+xml"]
app_file "./sample.rb"
bind "0.0.0.0"
default_encoding "utf-8"
dump_errors true
empty_path_info nil
environment :development
lock false
logging false
method_override false
port 4567
prefixed_redirects false
public "/my/path/public"
raise_errors false
reload_templates true
root "/my/path"
run false
running false
server ["thin", "mongrel", "webrick"]
session_secret "XXX"
sessions false
show_exceptions true
static true
views "/my/path/views"

== Configure

Since tux is a {ripl shell}[http://github.com/cldwalker/ripl], tux is highly configurable. You can
create tux commands in the format tux-COMMAND and enhance your shell by adding ripl plugins to
~/.riplrc. Read {ripl's readme}[http://github.com/cldwalker/ripl#readme] for more.