ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 51 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 17:38 
Offline
Interpreter
Benutzeravatar

Registriert: 02 Jan 2005, 20:15
Beiträge: 1360
Zitat:
Wenn man aktuell, so wie ich, kein Buch hat, welches Ruby 1.9 zumindest streift, ist das mit der Doku dazu doch etwas frustrierend.


Hehe. Ich hab vor 1 Monat mein altes zerfleddertes Pickaxe Buch weggeworfen weil ich mir das neue zulegen werde. Ich fand Pickaxe 2 sehr gut, aber ausser der Referenz hatte ich nix mehr gebraucht - da hab ich dann Platz gemacht in meiner Bibliothek (also eben bis die neue pickaxe in Buchform da is.... ich kann keine Bücher mehr aufheben die keinen Wert für mich haben, sammel ja vieles auf dem Computer)

Armer toter Baum... aber ich pflanz dafür neue Bäume im Garten in Niederösterreich an - man glaubt gar nicht wie schnell die alle wachsen, sogar Ableger von anderen Bäumen (Weiden etc...) wachsen wahnsinnig schnell- ich seh das als schnell nachwachsende Ressource :-)

_________________
Retired. Macht es gut!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 17:54 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich habe noch etwas gefunden, was mir seltsam erscheint. Es müsste aber noch mal jemand überprüfen, weil ich nicht die aktuelle (preview1-) Version von Ruby 1.9 habe (gibt mal wieder Probleme bein Erstellen unter Windows :roll: ).

Wenn ich eine ganz normale Klassenhierarchie erstelle, so wie hier...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Otto
def initialize
puts yield
end
end

class Hugo < Otto
def initialize(&b)
puts "in 'Hugo'"
super(&b)
end
end

Hugo.new{42}
..., dann geschieht alles wie erwartet...

1
2
3
4
>ruby19 myfiber_test2.rb
in 'Hugo'
42
>Exit code: 0

Nun leite ich eine Klasse von Fiber ab...

1
2
3
4
5
6
7
8
class Hugo < Fiber
def initialize(&b)
puts "in 'Hugo'"
super(&b)
end
end

p Hugo.new{42}
...und erhalte ein seltsames Ergebnis...

1
2
3
>ruby19 myfiber_test.rb
#<Hugo:0xb24f58>
>Exit code: 0
..., da offensichtlich die initialize-Methode der abgeleiteten Klasse nicht ausgeführt wird.

Übersehe ich hier irgendein gemeines Detail? - War das ein Fehler, der aktuell schon behoben ist? - oder steckt da irgendeine Absicht hinter?

PS:
shevegen hat geschrieben:
...aber ich pflanz dafür neue Bäume im Garten in Niederösterreich an - man glaubt gar nicht wie schnell die alle wachsen, sogar Ableger von anderen Bäumen (Weiden etc...) wachsen wahnsinnig schnell- ich seh das als schnell nachwachsende Ressource :-)

Für Ruby 2 wird ein neu gepflanzter Baum wohl sogar schon als Papierlieferant dienen können - so in 6,7,8++ Jahren :wink:

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:02 
Offline
Geselle
Benutzeravatar

Registriert: 25 Dez 2007, 21:22
Beiträge: 117
Wohnort: Großefehn
WoNáDo hat geschrieben:
Nun leite ich eine Klasse von Fiber ab...


1
2
3
4
5
6
7
8
class Hugo < Fiber
def initialize(&b)
puts "in 'Hugo'"
super(&b)
end
end

p Hugo.new{42}

...und erhalte ein seltsames Ergebnis...


1
2
3
>ruby19 myfiber_test.rb
#<Hugo:0xb24f58>
>Exit code: 0


Villeicht liegts daran, das du for dem initialisieren in Zeile 8 p verwendest, was dir die komische Ausgabe macht, anders kann ich mir das nicht erklären...

_________________
Man lernt auf drei verschiedene Arten:
1. Durch Hinsetzen und etwas anschauen und es (villeicht) verstehn
2. Durch Fehler machen und korrigiert werden
3. Durch Fragenstellen an die, die 's wissen


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:08 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
Beide von WoNaDo beschriebenen Bugs treten bei mir auf:



1
2
HIPE-Machine:pypy-dist skade$ ruby19 --version
ruby 1.9.0 (2008-11-20 revision 20290) [i386-darwin9.5.0]


Soll ich nen Bugreport schreiben?

Gruß,
Skade


Zuletzt geändert von Skade am 21 Nov 2008, 18:11, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:09 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe


1
2
3
4
5
6
7
8
9
class Hugo < Fiber
def initialize(&b)
puts "in 'Hugo'"
super(&b)
end
end

h = Hugo.new{42}
p h
...hat den gleichen Effekt.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:19 
Offline
Geselle
Benutzeravatar

Registriert: 25 Dez 2007, 21:22
Beiträge: 117
Wohnort: Großefehn
@WoNáDo
Lass doch das p einfach weg, mach einfach:



Hugo.new{42}

_________________
Man lernt auf drei verschiedene Arten:
1. Durch Hinsetzen und etwas anschauen und es (villeicht) verstehn
2. Durch Fehler machen und korrigiert werden
3. Durch Fragenstellen an die, die 's wissen


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:24 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Stinger hat geschrieben:
@WoNáDo
Lass doch das p einfach weg, mach einfach:



Hugo.new{42}

Kein Unterschied, ausser das jetzt nichts mehr ausgegeben wird. Das p will ich ja auch deshalb haben, weil ich sehen möchte, was für ein Objekt erstellt wurde.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 18:24 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Skade hat geschrieben:
Soll ich nen Bugreport schreiben?

Wäre gut - ich habe es in Ruby-Core schon erwähnt, aber keinen Bug gemeldet.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 19:00 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
WoNáDo hat geschrieben:
Skade hat geschrieben:
Soll ich nen Bugreport schreiben?

Wäre gut - ich habe es in Ruby-Core schon erwähnt, aber keinen Bug gemeldet.


Ich sehs grad - dann warte ich mal noch bis morgen früh, vielleicht antwortet mal wer.

Gruß,
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 19:07 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
Ich hab übrigens das to_enum-Problem gelöst. Die Methode ist auf Objekt definiert:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
--------------------------------------------------------- Object#to_enum
obj.to_enum(method = :each, *args)
obj.enum_for(method = :each, *args)

From Ruby 1.9.0
------------------------------------------------------------------------
Returns Enumerator.new(self, method, *args).

e.g.:

str = "xyz"

enum = str.enum_for(:each_byte)
a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]

# protects an array from being modified
a = [1, 2, 3]
some_method(a.to_enum)


Wo wir gerade dabei sind: Klasse ist auch die Doku von Enumerator#new:




Use of this method is not discouraged. Use Kernel#enum_for() instead. 



Äääh... wie jetzt?

Gruß,
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 19:39 
Offline
Lehrling

Registriert: 17 Mai 2007, 18:33
Beiträge: 88
Skade hat geschrieben:
Soll ich nen Bugreport schreiben?

Ein Bug Report schadet nicht, aber zumindest beim #initialize Beispiel bin ich mir nicht sicher, ob es sich um einen Bug handelt. Ich glaube, es gibt noch mehr Core Klassen, die #initialize nicht ausführen. Ein Bug wäre das meiner Meinung nach nur, wenn es irgendwo anders beschrieben wäre.

Gruß,
Pit


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 21 Nov 2008, 19:54 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Pit hat geschrieben:
Ein Bug wäre das meiner Meinung nach nur, wenn es irgendwo anders beschrieben wäre.

Wenn initialize nicht ausgeführt werden soll, muss das in der Dokumentation vermerkt werden - allerdings gibt es ja keine Dokumentation, die diesen Namen verdient. Gemeldet werden muss das schon, weil es nicht das Standardverhalten ist.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23 Nov 2008, 13:04 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Skade hat geschrieben:
Ich sehs grad - dann warte ich mal noch bis morgen früh, vielleicht antwortet mal wer.

Interessiert offensichtlich niemanden.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24 Nov 2008, 21:26 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich irgendwie irritiert, weil auch auf Deinen Beitrag hin nichts auch Ruby-Core passiert, da doch die Fragen hinter den Beiträgen ganz einfach zu beantworten wären - die Fragen waren doch bug or feature?.

Irgendwie verliert man dadurch die Lust zu experimentieren und das Ergebnis zu melden, falls es nicht den Erwartungen entspricht.

...dabei wird doch andauernd betont, dass die grosse Schwierigkeit bei der Fehlersuche ist, dass Ruby 1.9 von zu wenigen benutzt wird.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24 Nov 2008, 23:05 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
Ich finds auch frustrierend, da Matz offenbar andere Mails gelesen und beantwortet hat. Wobei hier zuschlagen könnte, dass die Japaner manchmal Probleme mit langen englischen Texten haben.

Gruß,
Skade


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 51 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: