草庐IT

cron表达式

全部标签

ruby - Cron 作业无法加载 gem

我有一个连接到AmazonS3存储桶并下载最新生产备份的ruby​​脚本。我已经测试了脚本(非常简单)并且工作正常。但是,当我安排此脚本作为cron作业运行时,它似乎在加载Amazon(aws-s3)gem时失败。我的脚本的前几行如下所示:#!/usr/bin/envrubyrequire'aws/s3'正如我所说,当我手动运行此脚本时,它运行良好。当我通过计划的cron作业运行它时,它在尝试加载gem时失败了:`require':nosuchfiletoload--aws/s3(LoadError)此脚本的crontab如下所示:03***~/Downloader/download.

ruby - 正则表达式用逗号和空格分割字符串,但忽略带连字符的单词?

我需要一个正则表达式来用逗号和/或空格分隔字符串,但忽略带连字符的单词——最好的方法是什么?所以,例如——我想要这个……"foobar,zap-foo,baz".split(/[\s]+/)返回["foo","bar","zap-foo","baz"]但是当我这样做时,它包括像这样的逗号......["foo","bar,","zap-foo,","baz"] 最佳答案 "foobar,zap-foo,baz".split(/[\s,]+/) 关于ruby-正则表达式用逗号和空格分割字符

Ruby 使用正则表达式从字符串中提取数据

我正在做一些网络抓取,这是数据的格式Sr.No.Course_CodeCourse_NameCreditGradeAttendance_Grade我收到的实际字符串是以下形式1CA727PRINCIPLESOFCOMPILERDESIGN3AM我感兴趣的是Course_Code、Course_Name和Grade,在此示例中,这些值将是Course_Code:CA727Course_Name:PRINCIPLESOFCOMPILERDESIGNGrade:A有什么方法可以让我使用正则表达式或其他技术轻松提取此信息,而不是手动解析字符串。我在1.9模式下使用jruby。

ruby-on-rails - RSpec:通过正则表达式匹配字符串数组

我正在使用rspec测试我的模型的验证,并期待一条错误消息。但是,消息的确切文本可能会发生变化,所以我想更宽容一点,只检查部分消息。由于Spec::Matchers::include方法只适用于字符串和集合,我目前正在使用这个结构:@user.errors[:password].any?{|m|m.match(/istooshort/)}.shouldbe_true这可行,但对我来说似乎有点麻烦。是否有更好(即更快或更像ruby​​)的方法来检查数组是否包含正则表达式的字符串,或者是否有一个rspec匹配器可以做到这一点? 最佳答案

ruby - 正则表达式 "empty range in char class error"

我的代码中有一个正则表达式,用于匹配url的模式并抛出错误:/^(http|https):\/\/([\w-]+\.)+[\w-]+([\w-.\/?%&=]*)?$/错误是“字符类错误中的空范围”。我发现原因在([\w-.\/?%&=]*)?部分。Ruby似乎将\w-.中的-识别为范围运算符,而不是文字-。给dash加上escape后问题解决。但原来的正则表达式在我同事的机器上运行良好。我们使用相同版本的osx、rails和ruby:Ruby版本是ruby1.9.3p194,rails是3.1.6,osx是10.7.5。在我们将代码部署到我们的Heroku服务器之后,一切都运行良好。

ruby 正则表达式 "contains a word"

在Ruby中,如何编写正则表达式来检查提交的单个单词?假设我有一个接受文本的Web表单。我知道如果我想看看句子--only--是否包含"join"我可以使用ifthe_body=="join"但这只有在整个文本提交都是“加入”时才有效。如何捕捉这样的提交:“我想加入你们的俱乐部?”或者“请加入我”谢谢! 最佳答案 你可以这样做string=~/join/i#/imakesitcaseinsensitive或string.match(/join/i)关于性能评论的一点更新:>>s="iwanttojoinyourclub">>n=50

Ruby 正则表达式\1 对 gsub 意味着什么

\1是做什么的?例如"foobarbag".gsub(/(bar)/,'car\1')我相信这与您使用括号的方式有关,但我不太确定。有人可以向我解释吗?你能做像\2这样的事情吗?如果是这样,那会做什么? 最佳答案 您在搜索部分用括号括起来的每个项目将对应于替换部分中的一个数字\1、\2等。在您的示例中,只有一个项目被括号包围,即"(bar)"项目,因此您放置\1的任何地方都是括号,将被换入。你可以多次输入\1,如果你想重复找到的项目,这很方便,所以你可以合法地写car\1\1\1和"bar"将交换三次。\2没有用处,因为括号中只有一

ruby - 在 Ruby 中评估许多 bool 表达式,如 Array#join

在Ruby中,您可以使用Array#join使用可选的分隔符简单地将多个字符串连接在一起。["a","b","c"].join#=>"abc"["a","b","c"].join("-")#=>"a-b-c"我想知道是否有很好的语法糖可以用一堆bool表达式做类似的事情。例如,我需要将一堆表达式&&放在一起。但是,将使用哪些表达式由用户输入决定。所以与其做一堆cumulative_value&&=expression[:a]ifuser[:input][:a]我想先根据输入收集所有的表达式,然后&&一举将它们全部收集起来。像这样的东西:be1=x>ybe2=Proc.new{|stri

go-templates - 如何根据表达式有条件地在 Go 模板中设置变量,如果不使用 if 语句包装可能会导致错误

问题我该如何做这样的事情:{{$use_ssl:=(ne$.Env.CERT_NAME"")}}其中$.Env.CERT_NAME可能为零/未定义。如果它是零,它给出这个错误:at:errorcallingne:invalidtypeforcomparison注意:我无法控制传递给Go模板的对象,因此必须完全在模板本身内解决这个问题。我尝试过的我试图通过首先检查它是否为非空来变通:{{$use_ssl:=(($.Env.CERT_NAME)&&(ne$.Env.CERT_NAME""))}}但它给出了这个错误:unexpected"&"inoperand所以我切换到这个,这在语法上是允

ruby - 有没有办法查看 Sequel 表达式将生成的原始 SQL?

假设我有一个像这样的Sequel表达式:db.select(:id).from(:some_table).where(:foo=>5)有没有办法获取这将生成的SQL字符串(即"SELECTidFROMsome_tableWHEREfoo=5")?我注意到对上述表达式的结果调用inspect或to_s包括生成的SQL,但不确定如何直接访问它。以及不返回数据集的Sequel表达式如何,例如:db.from(:some_table).update(:foo=>5)是否可以在执行之前从中看到SQL? 最佳答案 你可以在数据集上调用sql:d