Rails 2.0 komt in zicht.
Geplaatst door Michiel de Mare ma, 01 okt 2007 03:37:00 GMT
Er is een voorvertoning van Rails 2.0 beschikbaar! Veel kleine, subtiele veranderingen. Om een paar dingen te noemen – exception handling ziet er nu goed uit (dat was altijd vrij ellendig). Er schijnt een goede debugger te zijn (daar moet ik echt mee gaan spelen). En er zijn weer allerlei leuke methodes aan de base classes toegevoegd, zoals Array#rand
.
Die had ik natuurlijk al, alleen had ik hem pick
genoemd.
class Array
def pick
at rand(size)
end
end
coinflip
zijn:
def coinflip
rand(2) == 0
end
Dat kun je dus ook noteren als:
def coinflip
[true,false].pick
end
(... alleen is de tweede 2,5x trager.)
Zo gebruiken we ook een array voormax
:
[12, i].max
in plaats van
12 < i ? i : 12
Waarom eigenlijk geen Range#pick
?
class Range
def pick
# we gaan voor de meest bondige oplossing
to_a.pick
end
end
(1900...2000).pick
module Kernel
alias λ lambda
end
maybe = λ {|a| [a,nil].pick }
p (1..10).map &maybe
Het werkt alleen als je ruby aanroept met de -Ku
optie. (u staat voor utf-8)
module Kernel
def …
raise 'Not implemented'
end
end
case (1..5).pick
when 1,2 : puts "1 of 2"
when 3,4 : puts "3 of 4"
else
…
end
(… is één unicode karakter).
Altijd goed, iemand die doet wat hij zegt ;)
Terwijl ik een beetje aan het lezen was hoe de ‘yadayadayada’ operator in perl werkt zag ik dat ook ??? en !!! valide operators zijn:
Ik denk overigens dat drie puntjes makkelijker typen dan die elipse… alhoewel: alt-; op de mac!
Misschien is het niet zo bedoeld, maar je komt heel know-it-all over. Dat ze methoden van jou overnemen… Dat je dat kunt zeggen. Waarom had jij dan niet een patch ingediend? Rails is open-source hoor.
@Rick ik denk dat Michiel met het stukje ‘Nu Rails toch methodes van mij aan het overnemen is’ bedoelt dat Rails de betreffende functies nu voor zijn rekening neemt; en niet in de negatieve zin des woords.
Dat het zolang heeft geduurd voordat die debugger terug was! Verbaasde me echt, ik gebruikte de breakpointer erg veel.
Wat ik mooi vind aan 2.0 is dat ze de ‘bloat’ hebben aangepakt. Minder is meer, zeker in code. Bijvoorbeeld alle database adapters zitten nu in aparte gems. Ook behoort het geheel wat consistenter te worden. Nu de ‘if elsif else end’ contructie nog. Waar is in godsnaam die ‘e’ in elsif?? Misschien Ruby 2.0.
@Harm omdat een engelsman de l niet als ‘el’ uitspreekt maar eerder zonder de e… en Ruby wilt nu eenmaal wel engelse woorden behouden omdat dat voor iedereen logisch is.