首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >on_message和on_private_message

on_message和on_private_message
EN

Stack Overflow用户
提问于 2017-03-22 01:01:02
回答 1查看 47关注 0票数 0

我目前在Cloud9上使用Cloud9

代码语言:javascript
复制
conference.on_message {|time, nick, text|
     case text
        when /regex/i
            #Same Command as on_private_message
        end
     end
}

conference.on_private_message {|time,nick, text|
     case text
        when /regex/i
            #Same Command as on_message
        end
     end
}

conference.on_message是会议的聊天消息,conference.on_private_message是会议的私有消息聊天。

我希望将on_message和on_private_message作为1,而不是上面所示的2。

我尝试过这样的方法(如下所示),但它只起作用于conference.on_private_message。我怎么才能让它成为可能?

代码语言:javascript
复制
(conference.on_message || conference.on_private_message) { |time, nick, text|
    case text
        when /regex/i
            #Same Command on both on_message and on_private_message
        end
     end  
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 18:51:37

据我所知,目的是让你的代码干涸。创建Proc对象并将其发送到这两个函数可能是值得的。

代码语言:javascript
复制
proc = Proc.new { |time, nick, text|
case text
    when /regex/i
        #Same Command on both on_message and on_private_message
    end
 end  
}
conference.on_message(&proc)
conference.on_private_message(&proc)

您也可以尝试使用#send方法。

代码语言:javascript
复制
[:on_message, :on_private_message].each { |m| conference.send(m, &proc) }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42940912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档