Lepsza konsola w railsach

Author: Paweł Rutkowski

Na pewno większość z Was wie, że RubyOnRails jest wyposażone w tekstową konsolę (./script/console). Po jej uruchomieniu zostaje załadowane środowisko rails a użytkownik dostaje konsolę, na której może interaktywnie wykonywać kod rubiego. Przydaje się to debugowania aplikacji, ręcznego modyfikowania danych czy prostego (i szybkiego) prototypowania.

Aby uczynić pracę z konsolą wygodniejszą, powstał “gem” o nazwie “wirble“. Rozszerza on funkcjonalnosc konsoli o kolorowanie składni oraz stałą historię poleceń (oryginalna konsola posiadała historię tylko w obrębie jednej sesji - po wyjściu z niej nie była zapamiętywana)

Note: akurat historia poleceń nie zawdzięczamy samemu wirble - natywna konsola posiada tą opcję, a wirble dokonuje tylko jej aktywizacji

Instalacja gemu jak zwykle standardowo:


gem install wirble

Przykładowy plik konfiguracyjny ~/.irbrc


1 require 'rubygems'
2 require 'wirble'
3 Wirble.init
4 Wirble.colorize
5 IRB.conf[:AUTO_INDENT] = true
6 IRB.conf[:IRB_RC] = proc do |conf|
7 leader = " " * conf.irb_name.length
8 conf.prompt_i = "#{conf.irb_name} > "
9 conf.prompt_s = leader + ' \" '
10 conf.prompt_c = leader + ' \+ '
11 conf.return_format = leader + " ==> %s\n\n"
12 puts "Welcome to better IRB!"
13 end

PS: plik .irbrc jest normalnym skryptem rubiego, więc można tam umieścić normalny kod - co zresztą widać po lini 12.

One Response to “Lepsza konsola w railsach”

  1. Sławosz Says:

    Warto to .irbrc wpisać

    def log_to(stream)
    ActiveRecord::Base.logger = Logger.new(stream)
    ActiveRecord::Base.clear_active_connections!
    end

    by w irbie w środowisku aplikacji railsowej uruchomić tą metodę

    log_to STDOUT

    I wtedy mamy logi bezpośrednio w konsoli, co ułatwia śledzenie co aktualnie robi SQL

    http://weblog.jamisbuck.org/2007/1/31/more-on-watching-activerecord

Leave a Reply