SORU
27 Temmuz 2009, PAZARTESİ


Nasıl bir sınıf zaten Ruby olup olmadığını kontrol etmek için

Nasıl bir sınıf zaten Ruby varsa kontrol edebilirim?

Benim kod:

puts "enter the name of the Class to see if it exists"   
nameofclass=gets.chomp  
eval (" #{nameofclass}......  Not sure what to write here")

Kullanmayı düşünüyorum:

eval "#{nameofclass}ancestors.     ....."

CEVAP
27 Temmuz 2009, PAZARTESİ


Module.const_get Sabit dize tarafından sevk almak için kullanabilirsiniz. Sürekli (genellikle sınıflar, sabitler tarafından başvurulan) dönecektir. Eğer sabit bir sınıf olup olmadığını görmek için kontrol edebilirsiniz.

Bu satırlar boyunca bir şey yapardım:

def class_exists?(class_name)
  klass = Module.const_get(class_name)
  return klass.is_a?(Class)
rescue NameError
  return false
end

Ayrıca, her zaman kullanıcı girişi kabul ederken eval kullanmaktan kaçının; bu güvenlik risklerin farkında olmak değer ciddi bir uygulama için, ama kullanılan olacak şüpheliyim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • ecf150king

    ecf150king

    20 Ocak 2006
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007