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

  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • max2sims2

    max2sims2

    19 Kasım 2008
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012