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

  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • Kurtindo Pop Games

    Kurtindo Pop

    2 HAZİRAN 2013
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011