jeudi, juin 30, 2005

Les blocks c'est fort!

Au début je ne pensais les utiliser trop souvent et en fait on en trouve un peu partout (exemple: IO.foreach).
Je n'ai pas encore eu besoin d'écrire de fonction qui utilise cette fonctionnalité moi même mais j'ai quand meme voulu essayer et il faut bien avouer que c'est sympa!
Ca permet d'injecter des instructions dans une méthode. Comme je ne suis peut être pas assez clair, voilà un exemple:
def yield_back_at_me
  2.times do
    yield
    puts "------"
  end
end

yield_back_at_me {puts "coucou"}
Résultat:
coucou
------
coucou
------

Un fichier ou un répertoire ?

D'abord on va lister ce qu'il y a dans un répertoire:
Dir.foreach("/Temp") {|item| puts item}
Comment savoir si on a trouvé un répertoire ou un fichier ?
Evidement il faut que le répertoire "Temp" et le fichier "temp.txt" existe sur votre disque dur ;)
puts File.file?("/Temp/temp.txt")
puts File.file?("/Temp/.")
puts File.file?("/Temp/")
puts File.file?("/Temp")
Résultat:
true
false
false
false

mardi, juin 28, 2005

Créer et écrire un fichier

Voici 2 manières de créer un fichier et écrire dedans (je ne sais pas laquelle est la meilleure!)
File.open("/mon_chemin/testfile.txt", File::CREAT|File::RDWR) do |aFile|
  aFile << "test"
end
ou
file = File.open("/mon_chemin/testfile.txt", File::CREAT|File::RDWR)
file  << "test"
file.close

vendredi, juin 24, 2005

Aide et Documentation

Comme je ne connais pas encore les methodes et objets en ruby, la documentation de référence est bien pratique.

Une autre astuce bien pratique pour savoir le type de l'objet qu'on manipule:
irb(main):001:0> test = 1
=> 1
irb(main):003:0> test.class
=> Fixnum

jeudi, juin 23, 2005

Afficher toutes les lignes d'un fichier en 1 ligne!

En 1 ligne, comment ouvrir un fichier en lecture, lire chaque ligne, les afficher et fermer le fichier!
IO.foreach("mon_fichier.txt") { |line| puts line }

mercredi, juin 15, 2005

Quelques astuces

Un article interessant en anglais: http://www.magpiebrain.com/archives/2005/06/15/java_to_ruby2
Variables statiques (ou de classes): @@ma_variable
task.completed? renvoie true ou false
"if some_value != 0" equivalent à "unless some_value == 0"