当前位置: 首页 > 面试题库 >

使用Ruby验证Jenkins插件形式

邓光赫
2023-03-14
问题内容

我正在用Ruby开发Jenkins插件。您应该能够配置连接到服务器的每个节点,以便当该节点失去与主服务器的连接时将电子邮件发送到指定的地址。EmailNodeProperty添加一个字段以输入电子邮件地址:

# 
# Save an email property for every node
#
class EmailNodeProperty < Jenkins::Slaves::NodeProperty
    require 'java'
    import 'hudson.util.FormValidation'

    display_name "Email notification"

    attr_accessor :email

    def initialize(attrs = {})
        @email = attrs['email']
    end

    def doCheckEmail value
        puts "  ENP.doCheckEmail:#{value}"
    end
end

配置节点时,会有一个名为的字段email,您可以在其中输入电子邮件地址。我希望在输入地址时验证此字段。

保存配置后,EmailNodeProperty便会创建一个地址(正确),您可以访问该电子邮件地址。

MyComputerListeneroffline当一个节点的连接丢失,被称为:

class MyComputerListener
    include Jenkins::Slaves::ComputerListener
    include Jenkins::Plugin::Proxy

    def online(computer, listener)
    end

    def offline(computer)
        #Do nothing when the Master shuts down
        if computer.to_s.match('Master') == nil
            list = computer.native.getNode().getNodeProperties()
            proxy = list.find {"EmailNodeProperty"}
            if proxy.is_a?(Jenkins::Plugin::Proxy)
                rubyObject = proxy.getTarget()
                email = rubyObject.email #<= Accesses the email from EmailNodeProperty
                [...]
            end
        end
    end
end

MyComputerListener 查找电子邮件地址并发送电子邮件。

有人知道是否可以在Ruby中验证表单吗?根据Jenkins Wiki,这是应该实现的(FIELD应该交换为字段名,所以我想应该是doCheckEmail):

public FormValidation doCheckFIELD(@QueryParameter String value) {
    if(looksOk(value))
        return FormValidation.ok();
    else
        return FormValidation.error("There's a problem here");
}

您将如何在Ruby中执行此操作?该方法应在哪里实施?在EmailNodeProperty还是在MyComputerListener?您如何处理QueryParameter?@将使它成为Ruby中的实例变量。(什么是Queryparameter?)

任何帮助将非常感激!

/乔纳坦


问题答案:

该功能今天根本不存在,我们非常需要添加它。在星期四上午的hack会话中已经提出了几次,因此它在TODO列表中排名很高。但是从ruby-
runtime插件0.10开始
,这是不可能的。抱歉让您失望。



 类似资料:
  • 本文向大家介绍jQuery Validation Plugin验证插件手动验证,包括了jQuery Validation Plugin验证插件手动验证的使用技巧和注意事项,需要的朋友参考一下 jquery.validate是jquery旗下的一个验证框架,借助jquery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法,并且对国际化也有很好的支持。 正常的验证模式如下: 这样

  • 本文向大家介绍jQuery验证插件validate使用方法详解,包括了jQuery验证插件validate使用方法详解的使用技巧和注意事项,需要的朋友参考一下 1. 写在前面   我们知道,用户在注册的时候,会有个表单页面,然后有些选项是必填的,有些要填的内容是有规范的,这些都要在用户提交之前进行验证才行,如果不符合要求,需要在右边显示一个友好的提示,让用户修改。   记得以前在学习Servlet

  • 本文向大家介绍jquery表单验证插件formValidator使用方法,包括了jquery表单验证插件formValidator使用方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jquery表单验证插件formValidator的使用方法,供大家参考,具体内容如下 使用步骤: 1.首先在项目中添加必备js与css   2.代码中添加引用(必备引用) 3.<body>中要验证的

  • 我有一个isuue与jquery验证插件。我有一个表单,其中所有字段都是使用Ajax动态加载的。所有字段的名称和ID都是动态设置的。所以我无法将他们的名字输入jQuery。 管理员可以将某些文件验证所需的设置为true或false。现在我的问题是复选框。我把他们的名字放入数组。另外,我正在使用pretty-checkbox自定义类在checkbox上应用样式。For ex:一组chkbox数组名称

  • 我想使用jQuery验证插件验证输入(出生日期),但它必须是“dd/mm/yyyy”格式,并且在年份日期超过2002年时不进行验证。 因此,该日期在格式为“dd/mm/yyyy”且年份超过“2002”时有效

  • 目前支持对以下格式的值进行验证:   cnum*-*(纯数字),   char*-*(纯字母),   zwen*-*(中文),   bysc*-*(字母开头),   mail(邮箱),   yzbm(邮政编码)      *    其中的‘*’表示长度,比如“zwen1-5”表示中文1-5位的长度。同时支持“zwen”(只能是中文),“zwen5-*”(5位长度的文字),其他的数据类型如同上面所示。