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

  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011