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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • case LianLi

    case LianLi

    28 Mayıs 2010