आप वास्तव में बनाया नेस्टेड lambdas या procs, जो आप अंत में कॉल कर सकते हैं करने के लिए inject
उपयोग कर सकते हैं। आप अपने दिए गए ब्लॉक की जरूरत है, घोंसला के इंटीरियर होने के लिए, ताकि आप अपने सरणी रिवर्स और प्रारंभिक मूल्य के रूप में है कि ब्लॉक का उपयोग करें, तो सुई से परिणाम के आसपास बाद एक समारोह लपेट:
def in_nested_contexts(&blk)
[:with_this, :with_that, :and_in_this_context].reverse.inject(blk) {|block, symbol|
->{ send symbol, &block }
}.call
end
आप अपने with_this
लपेट हैं , puts
कथन के पहले और बाद में एट अल विधियां, आप इसे क्रिया में देख सकते हैं:
in_nested_contexts { puts "hello, world" }
#=>
with_this start
with_that start
context start
hello, world
context end
with_that end
with_this end
स्रोत
2013-03-27 02:28:49
बस मुझे जो चाहिए, धन्यवाद! – Julik