`
insertyou
  • 浏览: 920270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用ruby Jabber::Simple的 封装 写subversion的提交自动 GoogleTalk通知器

 
阅读更多

需要解决的问题:

最近我们项目的代码审核员跟我提到,很多程序员在没有通知他的情况下就把代码提交到svn里面,这个也是我们一直想要解决的问题------代码提交后的相关人员实时通知。

关键词:

  1. Google Talk: 我们工作流专用的im工具,qq信息太繁杂,msn功能过多,用gtalk能够确保大部分信息都是来自工作中,有恰到好处的图片,文件传送功能,有邮件通知,永远无需删除的邮件的大容量邮箱,最棒的是基于开源的Jabber协议
  2. Ruby: 时下最火的动态语言,丰富开源社区的支持让编写各种应用得心应手
  3. Subersion: 开源界最好的版本控制工具
  4. Jabber::Simple :对googletalk最好的封装代码如其名简单之极,以下2行代码就可以达到登录发送消息的目的
  • im=Jabber::Simple.new("your_account@gmail.com","your_pass")
    im.deliver(
    "your_friend@gmail.com","hihowareyou")
  • 需要run-> gem install xmpp4r-simple 安装ruby的jabber-simple库

方法:

subversion 的仓库目录下有个hooks 目录,默认会有一系列.tmpl文件,都是svn提供的回调方法的桩文件,我们需要做的是写一个post-commit.bat(windows系统下)文件调用我们的写的.rb ruby文件并把参数传递过去

代码1 post-commit.bat:

就这么一行,调用ruby文件,并把参数传递过去

E:\your_repos_root\hooks\post-commit.rb %1 %2

代码2 post-commit.rb:

require"xmpp4r-simple"
im
=Jabber::Simple.new("your_sender_name@gmail.com","your_sender_pass")
sleep(
5)

repos
=ARGV[0]
revn
=ARGV[1]

notifystring
=repos+"'snewestrevisionis"+revn
recepients
=["recepient1@gmail.com","recepient2@gmail.com","recepient3@gmail.com"]

ifim.connected?
recepients.each{
|notifymail|im.deliver(notifymail,"Somefileinyourreposhasjustbeencommitted!"+notifystring)}
end
im.disconnect

恩,代码就这么简单,你一旦提交svn就会调用你的bat脚本,发送通知,请确保您的your_sender_name@gmail.com在你所有recepients 的email的好友名单之内

分享到:
评论

相关推荐

    jabber概述

    元素用于封装Jabber用户之间发送的消息内容,可以是普通的文本消息,也可以是更为复杂的消息类型。该元素支持多种类型的消息传递方式,例如普通的、聊天形式的或错误反馈等。 - **消息类型**:可以通过元素的“type...

    Google Talk

    在开源系统Jabber基础上开发出来的聊天软件,GoogleTalk仍然是个类似QQ语音的点对点语音通讯软件,可以发送文本信息也能语音通讯,和Gmail联系紧密,使用gmail帐号登录,界面简洁漂亮。有关Google的详细介绍,请参见...

    Linux下Google Talk秀.pdf

    Google Talk基于Jabber/XMPP协议,这意味着第三方即时通讯软件可以与Google Talk实现互通。 然而,Google官方发布的Google Talk客户端只支持Windows系统,对于Linux用户,他们需要寻找替代方案来体验Google Talk。...

    XMPP協議定義及應用

    ### XMPP協議定義及應用 #### 一、XMPP概述 XMPP(Extensible Messaging and Presence Protocol,可扩展消息处理现场协议)是一种基于XML(可扩展标记语言)的开放标准协议,主要用于即时消息(IM)和在线状态探测...

    Jabber 协议 概述

    Jabber 协议通过使用开放的 XML 格式提供了高度灵活的即时通讯解决方案。其三个核心元素——`<message/>`、`<presence/>` 和 `<iq/>`——覆盖了即时消息、在线状态管理和信息查询等多个方面。对于开发者来说,理解...

    Jabber 协议 即时消息和在线状态的系统

    Jabber 协议是一种基于XML的开放即时通讯协议,主要设计用于实现即时消息和在线状态的传递。这个协议由Jabber开源社区发起,并且不断演化以适应各种扩展需求。Jabber协议的核心特点在于其开放性,允许开发者创建...

    node-jabber:这是Cisco Jabber的Node.js客户端

    节点破坏者这是cisco jabber / webexconnect的nodejs客户端。 这是基于node-xmpp软件包的。 运行后-它可以执行以下操作: 与网络中的其他用户聊天与网络中的其他用户进行群聊在执行之前进行配置的步骤(client.js)...

    xmpp4r, 用于 ruby的xmpp/jabber库.zip

    xmpp4r, 用于 ruby的xmpp/jabber库 XMPP4R用于 ruby的xmpp/jabber库项目主页你可以以在"项目主页"中找到有关voiceover项目的信息以及如何进行贡献:xmpp4r.github.io如果你需要问问题,或者者想要对提议的更改反馈,...

    tigase开发指南.pdf

    tigase服务器在启动时会初始化并启动相关组件和插件,启动的组件或开通监听端口号或访问数据库或者创建线程池,默认有些组件和插件非必须,我们也用不到,为了避免资源浪费,需要在配置中注释这些组件。 以下是...

    mediacenterjs-javascript-jabber:用于 JavaScript Jabber 播客的 Mediacenterjs 插件

    Mediacenterjs-javascript-jabber 是一个专为 JavaScript 设计的插件,它使得在网页上集成 Jabber 即时通讯功能成为可能,尤其适用于创建互动式播客平台。这个插件是基于 Mediacenter.js,一个强大的多媒体中心框架...

    网络通信 jabber协议

    此外,Jabber协议还允许通过传输器与其他即时通讯系统如ICQ进行交互,这使得Jabber具备高度的兼容性和互操作性。 总的来说,Jabber协议为开发者提供了构建即时通讯应用的强大框架,不仅实现了基本的消息传递和状态...

    Jabber协议概述

    Jabber协议广泛应用于各种即时通讯应用,包括Google Talk、Facebook Messenger和ejabberd等。它的开放性和标准化使得开发者可以轻松创建跨平台、高度可定制的通信解决方案。 总结,Jabber/XMPP协议以其强大的实时...

    jabber博客

    2. **跨平台**: 由于Jekyll是用Ruby编写的,因此它可以在多种操作系统上运行,包括Windows、MacOS和Linux。 3. **易于部署**: jabber博客系统生成的静态页面可以轻松部署到各种支持静态页面的主机上,包括GitHub ...

    Cisco Jabber For MacOS 12.5.1

    6. **通知和提醒**:Jabber可以发送新消息、呼叫和会议邀请的通知,确保用户不会错过任何重要的沟通。 7. **安全性**:作为思科产品,Jabber注重数据安全和隐私保护,支持端到端加密,确保敏感信息在传输过程中的...

    cisco jabber

    Cisco Jabber是一款由思科公司开发的企业级即时通讯和协作工具。它整合了多种通信方式,包括文字聊天、语音通话、视频会议、桌面共享、文件分享等,旨在提高工作效率并促进团队间的协作。 **1. Cisco Jabber简介** ...

    Java Jabber Client-开源

    此外,XMPP 支持服务器之间的互操作性,这意味着使用 Java Jabber 客户端的用户可以与其他遵循 XMPP 的服务(如 Google Talk、Facebook Messenger 等)进行无缝通信。 在开发 Java Jabber 客户端时,通常会使用如 ...

    cisco jabber 安装包

    4. 完成安装后,通常会自动添加到系统启动项,以便在每次开机时启动Jabber。 5. 登录时需要使用思科统一通信管理系统(CUCM)或兼容的身份验证凭证。 **5. 配置与使用** 配置Cisco Jabber可能涉及与企业网络的连接...

    jabba源码+jabber封装的dll版.zip

    Jabba是一款基于Jabber协议的开源客户端库,它为开发者提供了强大的工具来构建与Jabber服务器交互的应用程序。Jabber是一种开放标准的即时通讯(XMPP)协议,广泛用于企业级通信和互联网聊天应用。在"jabba源码+...

    jabber协议分析及开发文档

    包含①《Instant Messaging in Java,The Jabber Protocols》、②《Developing Applications Using Jabber》、③RFC-3920、④RFC-3921。 ①英文文档,详细分析jabber协议。This book is dedicated to the Jabber ...

Global site tag (gtag.js) - Google Analytics