Ruby ile yaml dosyası oluşturmak (sorun: her çalıştırmamda tekrar yazıyor)

Herkese merhaba. Bugünkü sorum ruby ile alakalı ve muhtemelen sizler için çok basit bir konu.

Şuanda bir ruby gem inşa etmeye çalışıyorum ve amacım yaml dosyasında birden fazla arkadaşın bilgilerini tutabilmek.

Aşağıdaki şekilde kodu çalıştırdığımda başarılı bir şekilde “friends.yaml” dosyası oluşturup içeriğe istediğim formatta datayı yazıyor ancak dosyayı tekrar çalıştırdığımda yeni bir friend eklemek yerine önceki friend in üzerine yazıyor. Dosyayı direkt “ruby friends_data.rb” olarak çağırdığımda da gem olarak oluşturup “irb” içerisinde “load” ile çalıştırdığımda da aynı sonucu alıyorum.

Yaml dosyasının yazılımı hakkında google dan bulabildiğim tüm farklı çeşit kod yazılımını yazmayı denedim, ancak sonuç hala aynı.

Belki de bu yöntemde normal olan budur, emin olamadım :slight_smile:

Şimdiden teşekkür ederim.

module FriendsData
  class Error < StandardError; end
  print "Name:  "
  name = gets.chomp
  print "Phone:  "
  phone = gets.chomp

  friend = {"Name"=>"#{name.upcase!}", "Phone"=>"#{phone}"}

  File.open("friends.yaml", "w+") { |file| YAML.dump(friend, file) }

  puts "Thank you #{name} you were added."
end

Merhaba,

Dosyayı açarken “w+” modunu kullanmak yerine “a+” modunu kullanırsanız mevcut dosyanın sonuna eklemesi lazım. a => append

Modlarla ilgili daha fazla bilgi almak için IO.new methodunun dokumanına bakabiirsiniz, komut satırında ri IO.new komutunu çalıştırarak.

3 Beğeni

Harikasınız, çok teşekkür ederim :slight_smile:
*Sorunum çözüldü.

1 Beğeni