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

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • gsipek

    gsipek

    20 Temmuz 2007