私の機能は次のとおりです。
def hello(str)
puts "hello #{str}"
end
def hello_scope(scope, &block)
# ???
end
メソッドのブロック内で関数を一時的に拡張したいと思います。
では、元のメソッドに渡す前に、文字列をhello_scope
前に追加したいだけです。次に例を示します。scope
str
hello
hello 'world' #=> hello world
hello_scope "welcome!" do
hello 'bob' #=> welcome!hello bob
hello 'alice' #=> welcome!hello alice
end
Rubyでこの種のことになると、私は一種の初心者です。誰かが私がこれをエレガントな方法で解決するのを手伝ってもらえますか?
編集:
作業が簡単になる場合は、次のように、メソッドを引数としてブロックに渡しても問題ありません。
hello_scope "welcome!" do |h|
h "bob" #=> welcome!hello bob
h "alice" #=> welcome!hello alice
end