Ruby (Update)
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! :-)
October 11th, 2006 at 22:45
RDT hat mir mal beim Refactoring von tpp den Sourcecode vollkommen zerstoert. Auf einmal waren etliche Klassen einfach weg. Keine Ahnung, ob das jetzt immer noch so ist, aber vor ca. 1 bis 1.5 Jahren war RDT noch ziemlich unbenutzbar.
October 12th, 2006 at 13:56
Ruby on Rails vielleicht … so als Bonus für Rubykenner
October 16th, 2006 at 15:58
Fuer Native Ruby gibts so was aehnliches wie RubyNode:
http://www.zenspider.com/ZSS/Products/ParseTree/
Fuer Java gibts noch JRuby http://jruby.org/ , das ziemlich eifrig entwickelt wird (zwei der Entwickler werden seit September von Sun fuers JRuby entwickeln bezahlt).
November 6th, 2006 at 18:24
Wenn du etwas Farbe in dein irb Leben bringen möchtest, dann schau dir mal an. Außerdem ist der Blogpost von mfp ziemlich nützlich.