ruby-mine

exploring the mine

Die drei Großen (2): Sequel

von skade am 11.02.2011 (18 Uhr)

Sequel ist wohl die DB-Zugriffsschicht, mit der sich die wenigsten Rubyisten auskennen. Dabei ist sie meiner Meinung nach die beste reine Skripting-Bibliothek von allen dreien. Das äussert sich schon darin, dass Sequel mit keinerlei Core-Extensions wie ActiveSupport oder Extlib daher kommt. Einige werden zwar optional mitgeliefert, aber nicht standardmässig geladen.

Wie bereits erwähnt, beschäftigt sich Sequel nur mit SQL und das mit nur minimalen Abstraktionen - Sequel ist also kein ORM. Dafür kommt Sequel mit der größten Anzahl an Datenbank-Adaptern, momentan über 20. Implementierungen für verschiedene Connection-Pooling-Strategien und Sharding finden sich auch.

Plugins gibt es für viele interessante SQL-Funktionen, zum Beispiel für Windows (also, nicht das OS) oder Recursive Table Expressions.

Darüber hinaus kommt Sequel mit einem Kommandozeilentool, dass sich als Ersatz für den datenbankspezifischen Client verwenden lässt, allerdings im Grunde nur IRB mit vorgeladener Datenbank ist.


Vollständigen Artikel lesen...
 
Kommentare (0)

Dokumentieren mit hanna

von quintus am 04.12.2010 (15 Uhr)

hanna ist ein Template für das Ruby-Dokumentationstool RDoc. Es weist im Gegensatz zum Standard-Template Darkfish (welches ihr z.B. auf der RDoc-Website bewundern könnt) eine sehr angenehm lesbare HTML-Ausgabe auf und enthält zudem eine Suchfunktion für Methodennamen. Eine beispielhaft mit hanna generierte Dokumentation findet ihr etwa im Dokumentationsteil der Website meines Automations-Projekts und es leidet auch nicht an einigen Problemen wie Darkfish, welches zum Beispiel nicht mit mehrzeiligen Methodendefinitionszeilen (solche können mit der Direktive call-seq erzeugt werden) umgehen kann. In diesem Blogpost möchte ich mich damit befassen, wie man hanna dazu bringen kann, die Ruby-Quellen zu dokumentieren, sodass man nicht immer an Webseiten wie ruby-doc.org (welches oft nicht aktuell ist) oder rdoc.info (welchem hin und wieder einige Teile insbesondere der Stdlib fehlen) gebunden ist. Außerdem werden wir nicht umhin kommen, dasselbe auch für installierte Gems zu tun.


Vollständigen Artikel lesen...
 
Kommentare (3)

Ruby Community trifft Zed Shaw

von bovi am 13.11.2010 (04 Uhr)

Ganz witzig zu lesen aber im Endeffekt unglaublich traurig, dass so viele Leute Ihre Zeit mit solchen Diskussionen verschwenden. Es geht um eine Copyright Verletzung des Buches Learnng Python The Hard Way von Zed Shaw.

 
Kommentare (0)

rescue revisited: Zucker für Müll und BASIC-Errorhandling

von skade am 11.10.2010 (20 Uhr)

Eine Weile (mehr als 4 Jahre) ist es inzwischen her, das Murphy hier zuletzt etwas zu rescue geschrieben hat. In der Erwartung, dass sich der Stoff inzwischen gesetzt hat, will ich hier zwei rescue-Varianten nochmal näher unter die Lupe nehmen: die Modifikator-Variante und die Methoden-Variante. Ist zwar kein Sonntag, aber hier mal wieder etwas Syntax.


Vollständigen Artikel lesen...
 
Kommentare (4)

Ruby 1.9.x: neue Syntax für Stringinterpolation

von skade am 12.09.2010 (13 Uhr)

Ruby 1.9.2 ist jetzt eine Weile draussen und mit Rails 3 empfiehlt nun auch das größte Ruby-Projekt seinen Einsatz. Daher werde ich mal den Syntax-Sonntag wieder aufleben lassen und ein paar der Neuigkeiten in 1.9.2 vorstellen. Erster Kandidat: die verbesserte String#%-Methode. Die hier verwendeten Beispiele stammen aus der Doku von Sven Fuchs i18n-Bibliothek.


Vollständigen Artikel lesen...
 
Kommentare (6)

Ruby Draft Specification

von janfri am 01.12.2009 (10 Uhr)

Einige Monate ist es her, dass auf der RubyWorldConf 2009 die ersten Informationen bezüglich eines Standardiserungsprozesses veröffentlicht wurden. Heute wurde nun eine erste Version der Ruby Draft Specification veröffentlicht. Man kann sich das 341-Seitige PDF (zum Glück in Englisch und nicht Japanisch) auf der Seite herunterladen. Es tut sich also tatsächlich was in Bezug auf eine offizielle Spezifikation von Ruby. Die Autoren des Dokumentes bitten nun die Community um Feedback. Bleibt abzuwarten, ob es nur bei einem “Draft” bleibt.

Anfrage bezüglich eines Reviews…

 
Kommentare (0)

Ruby Fashion Guide: Flip-Flops

von skade am 21.09.2009 (21 Uhr)

Der Sommer geht zwar langsam zuende (oder: an meinem Ende der Welt ist er es schon), trotzdem kann man seinen Ruby-Code noch sommerlich kleiden (und in der CPU ist eh immer wohlig warm). Wie wärs mal mit Flip-Flops?

Bildquelle: http://www.flickr.com/photos/stuckincustoms/ / CC BY-NC-SA 2.0


Vollständigen Artikel lesen...
 
Kommentare (2)

require in Ruby 1.9.2

von skade am 19.07.2009 (10 Uhr)

Ruby 1.9.2 ist draußen und bringt ausser den in den News angekündigten Änderungen noch eine größere Überraschung mit.

Aufgrund eines potentiellen Sicherheitsproblems ist das Verzeichnis . nicht mehr standardmässig in $LOAD_PATH. Das bedeutet:

[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ls test.rb
test.rb
[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ./ruby --version
ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-darwin9.7.0]
[ skade HIPE-Machine ~/Downloads/ruby-1.9.2-preview1 ] ./ruby -e "require 'test'"
-e:1:in `require': no such file to load -- test (LoadError)
  from -e:1:in `
'
Der Fix dafür ist einfach und in einer single-user-Umgebung unbedenklich: entweder ihr gebt jedem Aufruf von Ruby -I. mit oder ihr setzt RUBYLIB=".".
 
Kommentare (6)

Reguläre Ausdrücke, Teil 0.2: Was sind eigentlich diese ominösen "regulären Ausdrücke"? (Fortsetzung von Teil 0.1)

von wonado am 17.06.2009 (23 Uhr)

von WoNáDo

Nach monatelanger Pause habe ich jetzt ein bisschen Zeit den dritten Teil dieses einführenden Überblicks zu schreiben. Offen ist noch die Frage nach der Überprüfung, also ob ein Text einer vorgegebenen Beschreibung genügt. Beim Versuch der Beantwortung beschränke ich mich jetzt auf reguläre Ausdrücke und deren Erweiterungen.

Dieser Teil ist auch ein wenig subjektiver als alle anderen Beiträge. Ich habe bisher (hoffentlich) immer Beispiele und Beschreibungen gebracht und die Frage, ob ein Einsatz in bestimmten Situationen sinnvoll ist, restlos dem Leser überlassen. Das basierte auf der Voraussetzung, dass ein Benutzer regulärer Ausdrücke schon wissen wird, warum er sie einsetzen will (oder durch Dritte erzwungen einsetzen muss).

Diese Basis bleibt bestehen, nur werde ich bezüglich der Anwendung erweiterter regulärer Ausdrücke auf ein paar Probleme eingehen, die meiner Meinung nach die sinnvollen Einsatzbereiche begrenzen.

Also los...


Vollständigen Artikel lesen...
 
Kommentare (0)

-S: die Rettung vor dem Versionswahnsinn

von skade am 05.06.2009 (11 Uhr)

Jetzt hat mans fast geschafft: MRI 1.9, MRI 1.8 und JRuby sind parallel installiert und haben alle ihre eigene Executable. Alle benutzen verschiedene Gem-Repositories und die Installationen sind schön isoliert. Alles rosa? Fast! Es bleibt da noch das Problem mit ausführbaren gems...


Vollständigen Artikel lesen...
 
Kommentare (0)

Reguläre Ausdrücke, Teil 0.1: Was sind eigentlich diese ominösen "regulären Ausdrücke"? (Fortsetzung von Teil 0.0)

von wonado am 05.04.2009 (21 Uhr)

von WoNáDo

Hier nun die Fortsetzung von Teil 0.0. Offen blieben noch zwei Fragen im Zusammenhang mit der Strukturbeschreibung: "In welcher Form kann man so etwas beschreiben?" und "Wie kann ich überprüfen, ob ein Text der Beschreibung genügt?".

Teil 0.1 versucht Antworten auf die erste Frage zu geben, ohne dabei zu sehr ins Detail zu gehen. Diese Themen werden umfangreich in der Literatur zur Theoretischen Informatik und zum Thema Compilerbau behandelt.

Also los...


Vollständigen Artikel lesen...
 
Kommentare (0)

Reguläre Ausdrücke, Teil 0.0: Was sind eigentlich diese ominösen "regulären Ausdrücke"?

von wonado am 04.04.2009 (23 Uhr)

von WoNáDo

Ich habe ein Problem. Nachdem inzwischen Teil 8 dieser Serie existiert, die bei Teil 1 begann, tauchte immer wieder mal die Frage nach einführenden Texten auf. Es wäre bestimmt verwirrend diese beispielsweise als Teil 9 bis Teil 13 zu führen, um dann als Teil 14 wieder etwas in der Preislage "wie quetsche ich das Letzte aus Oniguruma raus?" anzufügen.

Nun gibt es noch die 0, die selbstverständlich sehr geeignet für diese Zwecke ist - aber es gibt davon nur eine!

Also mache ich es ähnlich wie Ruby, indem ich einfach durch einen Punkt getrennt Unterpunkte einführe, damit ich vor der 1 noch reichlich Platz habe.

Klar? - Dann fange ich mal ganz langsam an... - ...ehe ich es vergesse: Bei den Nuller-Teilen sind Kopfschmerztabletten eher unnötig. Die Teile, die sich mit theoretischen Aspekten beschäftigen, können frei nach dem Motto "Mut zur Lücke" überlesen werden. Mit den Anwendungen regulärer Ausdrücke in Ruby wird man trotzdem zurecht kommen.


Vollständigen Artikel lesen...
 
Kommentare (1)

Zeitschriften braucht das Land?

von bovi am 11.03.2009 (21 Uhr)

Wie ich gerade eben gesehen habe, wurde ein weiteres Magazin mit dem Thema Rails vorgestellt. Zusammen mit der auch sehr frischen RailsWay scheint es eine richtige Zeitschriftenwelle zu geben (sofern ich bei zwei Stück schon von sowas sprechen darf :-). Der Markt ist dann wohl trotz seiner systembedingten Latenz doch nicht so tot wie angenommen.

 
Kommentare (2)

Reguläre Ausdrücke, Teil 8: Oniguruma und dynamische Relativbezüge

von wonado am 09.02.2009 (17 Uhr)

von WoNáDo

In Teil 8 dreht sich alles um die dynamischen Relativbezüge. Darunter verstehe ich die in der Beschreibung von Oniguruma unter back reference with nest level aufgeführten Möglichkeiten, dynamisch auf den Wert eines Untermusters, benannt oder unbenannt, zugreifen zu können, wobei man die gewünschte relative Stack-Position angeben kann. Alle diesbezüglichen Unklarheiten kann dieser Artikel (hoffentlich) beseitigen.

Die vollständige Beschreibung der in Oniguruma vorhandenen Möglichkeiten für reguläre Ausdrücke befindet sich hier.

Auch diesmal wieder die Anmerkung, dass die Beispiele nur als erklärende Programme für die betrachteten regulären Ausdrücke dienen. Gerade im Zusammenhang mit den dynamischen Relativbezügen lassen sich nicht leicht Beispiele finden, für die man diese Technik wirklich benötigt - aber vielleicht fällt ja jemandem, der das hier liest, eine Killer-Anwendung ein.

Nun aber los.


Vollständigen Artikel lesen...
 
Kommentare (1)

Reguläre Ausdrücke, Teil 7: Oniguruma und statische Relativbezüge

von wonado am 07.02.2009 (21 Uhr)

von WoNáDo

Die Teile 7 und 8, die nun fast zweieinhalb Jahre nach Teil 6 erscheinen, behandeln die statischen und dynamischen Relativbezüge in Oniguruma, sind also in der gerade freigegebenen Version Ruby 1.9.1 verfügbar. Die statischen Relativbezüge, die Teil 7 behandelt, wurden erst in der letzten Version von Oniguruma bereitgestellt, während die in Teil 8 behandelten dynamischen Relativbezüge schon länger existieren und von mir in eingeschränkter Form auch bei den Palindrom-Beispielen von Teil 5 berücksichtigt wurden.

Die vollständige Beschreibung der in Oniguruma vorhandenen Möglichkeiten für reguläre Ausdrücke befindet sich hier.

Etwas möchte ich noch anmerken. Die Beispiele dienen als erklärende Programme für die betrachteten regulären Ausdrücke. Wahrscheinlich lassen sich andere und einfachere Lösungen für die Aufgaben finden, die ohne die betrachteten Elemente und unter Einsatz anderer Möglichkeiten von Ruby funktionieren.

Genug der Vorrede - los gehts.


Vollständigen Artikel lesen...
 
Kommentare (1)