Lepsza konsola w railsach
Author: Paweł RutkowskiNa 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.
wrzesień 3rd, 2007 at 15:59
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