SORU
9 ŞUBAT 2012, PERŞEMBE


Bir şekilde Ruby yöntem bağımsız değişkenleri erişmek için var mı?

Google'dan nasıl hiç bir fikrim yok bu yana burada benim sorum Ruby ve ROR ve her gün sevmek için yeni (ve denedim :) )

yöntemi var

def foo(first_name, last_name, age, sex, is_plumber)
    # some code
    # error happens here
    logger.error "Method has failed, here are all method arguments #{SOMETHING}"    
end

Bu kadar yol için tüm argümanları almak için arıyorum, her ne kadar bir liste olmadan yöntemine geçti. Eğer sadece onları liste:) isterdim java olsaydı bu yana Ruby bir yolu yoktur herhalde:)

Çıkış şöyle olacaktır:

Method has failed, here are all method arguments {"Mario", "Super", 40, true, true}

CEVAP
9 ŞUBAT 2012, PERŞEMBE


Ruby 1.9.2 bu yöntem için parametre listesi almak için bir yöntem parameters yöntemi kullanabilirsiniz. Bu gerekli olup olmadığını çiftleri parametresi adını gösteren bir liste ve dönecektir.

örneğin

Eğer bunu yaparsanız

def foo(x, y)
end

sonra

method(:foo).parameters # => [[:req, :x], [:req, :y]]

Özel değişken __method__ geçerli yöntem adını almak için kullanabilirsiniz. Bir yöntem içinde kendi parametreleri ile elde edilebilir

args = method(__method__).parameters.map { |arg| arg[1] }

Sonra her parametrenin adı ve değeri ile görüntüleyebilirsiniz

logger.error "Method failed with "   args.map { |arg| "#{arg} = #{eval arg}" }.join(', ')

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • amc

    amc

    21 EYLÜL 2005
  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011