Ich spiele mich gerade ein wenig mit Ruby. (Murphee, du bist mit ‘Tipping the scale: The Ruby features that make the difference‘ nicht ganz unschuldig! ;-)) Um meine Gedanken zu ordnen hier ein bisserl Brain-Dumping…
Interessante Debian-Pakete:
irb: Interactive Ruby (irb)
rails: MVC ruby based framework geared for web application development
rdoc: Generate documentation from ruby source files
ri: Ruby Interactive reference (ri)
ruby-pkg-tools: Tools for building Debian Ruby packages
ruby1.9-examples: Examples for Ruby 1.9
rubybook: the "Programming Ruby" book
rubygems: package management framework for Ruby libraries/applications
vim-ruby: Vi IMproved - enhanced vi editor - with Ruby support
Als Vim-Verfechter habe ich natürlich vim-ruby (die Vim-Version mit Ruby-Scripting-Support, siehe ‘:help if_ruby’) installiert. In vim-ruby.rubyforge.org hab ich reingeschnuppert, tut soweit mal. Weiteres Vim-Tuning habe ich aber noch nicht vorgenommen. Kurz reingeschnuppert habe ich auch in RDT, eine Ruby-Erweiterung für Eclipse. Sieht soweit sehr nett aus, ich kann aber mangels Praxis-Erfahrung noch nicht wirklich was dazu sagen.
Unbedingt kennen sollte man auch irb. irb steht für ‘interactive ruby’ und ist quasi eine interaktive Shell für Ruby. Gerade für einfaches Herumspielen finde ich irb ganz nett, hier ein Auszug aus der ~/.irbrc der kommenden grml-Release:
# we want to be able to use tab-completion in irb:
require 'irb/completion'
ARGV.concat [ "--readline", "--prompt-mode", "simple" ]
# we want to get a history file of our session:
module Readline
module History
LOG = "#{ENV['HOME']}/.irb-history"
def self.write_log(line)
File.open(LOG, 'ab') {|f| f < < "#{line}\n"}
end
def self.start_session_log
write_log("\n# session start: #{Time.now}\n\n")
at_exit { write_log("\n# session stop: #{Time.now}\n") }
end
end
alias :old_readline :readline
def readline(*args)
ln = old_readline(*args)
begin
History.write_log(ln)
rescue
end
ln
end
end
Readline::History.start_session_log
# simple prompt?
# IRB.conf[:PROMPT_MODE] = :SIMPLE
# prompt for easy copy/paste? start with irb --prompt xmp
IRB.conf[:PROMPT][:XMP][:RETURN] = "\# => %s\n"
(Äh ja, diesen fehlplatzierten Smiley in der Konfig macht WordPress hinein. Fragt mich nicht, wieso es so einen Schmarrn in einer pre-Umgebung macht… soll natürlich ein Doppelpunkt mit einem anschliessenden ‘o’ sein….)
Das Buch Programmieren mit Ruby hab ich mir ausgeborgt (danke, Karl!), Programming Ruby, ‘The Pragmatic Programmer’s Guide’
hab ich mir vor kurzem gekauft und ist meine aktuelle Abendlektüre. Sehr netter Schreibstil! Nicht uninteressant wirkt auch Ruby Cookbook
, allerdings hab ich vorerst schon genug Leselektüre. ;-)
Interessante Webseiten:
Update: rubygems ist ab jetzt in Unstable zu finden (und wird somit wohl Teil von Debian etch). Vor ein paar Tagen bin ich über die Bookmarks von Murphee auf RubyNode aufmerksam gemacht worden. Heute hab ich mir die Zeit genommen, Ruby 1.8.5 selbst zu kompilieren damit ich RubyNode testen kann:
RubyNode is a library that allows read only access to Ruby’s internal NODE structure.
It can retrieve the node trees of methods and procs and it can use Ruby’s parser to parse
Ruby source code strings to node trees.
Karl, danke fürs Kommentar, natürlich gehört Ruby-on-Rails (Debian-Paket: rails) auch erwähnt.
Hab ich was vergessen? Sollte ich noch etwas kennen? Bitte melden! :-)