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

  • boburnham

    boburnham

    11 Temmuz 2006
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013