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

  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009