在 ruby 方法中传递字符串和块 do

Passing string and block do in ruby method

试图在方法中传递一个块:

self.handler_method("pinterest", do |pinterest|
   handle_facebook(pinterest.get_facebook[:username]) if pinterest.facebook_found?
   handle_twitter(pinterest.get_twitter[:username]) if pinterest.twitter_found?
end).call(username)

不断返回错误:

syntax error, unexpected keyword_do_block (SyntaxError)
                self.handler_method "pinterest", do |pinterest|
                                                   ^

我怎样才能修复它,让它接受两个参数。我可以使用内联块方式 {} 但更愿意使用 do, end

进行扩展

谢谢

应该是:

self.handler_method("pinterest") do |pinterest|
   handle_facebook(pinterest.get_facebook[:username]) if pinterest.facebook_found?
   handle_twitter(pinterest.get_twitter[:username]) if pinterest.twitter_found?
end.call(username)