草庐IT

任务计划

全部标签

ruby - 你如何在 Capistrano 中为不同的角色定义不同的相同任务?

我正在使用Capistrano来处理我的部署,我在我的设置中有两个不同的角色-:web和:processing。它们都有通常的:deploy任务,但:restart任务对于两种类型的服务器需要不同。所以我的第一次尝试是这样的:task:restart,:roles=>:webdorun"...webrelatedrestartstuff..."endtask:restart,:roles=>:processingdorun"...processingrelatedrestartstuff..."end这不起作用,因为第二个:restart(对于:processing角色)替换了第一个:

ruby - 我可以覆盖任务 :environment in test_helper. rb 来测试 rake 任务吗?

我在Rakefile中有一系列rake任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:task:do_somthing=>:environmentdo#Dosomethingwiththedatabasehereend:environment任务设置ActiveRecord/DataMapper数据库连接和类。我没有将其用作Rails的一部分,但我有一系列测试,我喜欢将其作为BDD的一部分运行。此片段说明了我如何尝试测试rake任务。defsetup@rake=Rake::Application.newRake.application=@rakeloadFile

ruby-on-rails - 如何让 Rake 任务在我的 Sinantra 应用程序/环境下运行?

我正在使用Sinatra,我想设置Rails具有的一些方便的rake任务,特别是rakedb:seed。我的第一遍是这样的:namespace:dbdodesc'Loadtheseeddatafromdb/seeds.rb'task:seeddoseed_file=File.join(File.dirname(__FILE__),'db','seeds.rb')system("rackshracksh是一个模仿Rails控制台的gem。所以我只是将种子文件中的代码直接输入其中。它有效,但显然并不理想。我想做的是创建一个环境任务,允许命令在Sinanta应用程序/环境下运行,如下所示:t

ruby - rake 将参数传递给相关任务

这是我目前运行rak相关任务的方式task:test=>[:prepare_testdir,:run_tests]目前这两个依赖任务没有参数。但是我需要向其中一项任务添加参数。它应该像在命令行上一样运行rakeprepare_testdir[mydir]我如何将这个新参数传递给这个task:test=>[:prepare_testdir,:run_tests]我试过了task:test=>[:prepare_testdir[mydir],:run_tests]和task:test=>[:prepare_testdir['mydir'],:run_tests]两者都不工作。提前致谢

ruby - Capistrano 检查任务中 undefined variable

在使用多阶段扩展的Capistrano中,我有两个环境:生产和测试。我在testing.rb中需要一些在prod.rb中不需要的变量,我希望我的一些任务能够检查变量是否已定义并在定义时使用它,但在定义时忽略它未设置。所以,在testing.rb中,我会有类似的东西:set:foo,'bar'prod.rb不会引用:foo因为它不需要它。在我的一项任务中,我想做类似的事情:ifdefined?(foo)#dosomethingwithfooelse#dosomethingwithoutfooend但我一直收到错误:undefinedlocalvariableormethod'foo'有没

ruby - 任务依赖性是否总是以特定顺序与 rake 一起运行?

我有以下示例,它基于我希望我的rakefile使用的结构:task:defaultdoputs'Tasksyoucanrun:dev,stage,prod'endtask:dev=>[:init,:devrun,:clean]task:devrundoputs'Devstuff'endtask:stage=>[:init,:stagerun,:clean]task:stagerundoputs'Stagingstuff'endtask:prod=>[:init,:prodrun,:clean]task:prodrundoputs'Productionstuff'endtask:init

ruby-on-rails - 如何在我的 Rails 应用程序中运行 rake 任务

我想做的事情:在model.rb中,在after_commit中,我想运行rake任务ts:reindexts:reindex通常使用rakets:index运行 最佳答案 如果您希望此rake代码在请求周期内运行,那么您应该避免通过system或任何exec系列(包括反引号)运行rake,因为这将启动一个新的ruby​​解释器并重新加载每次调用Rails环境。相反,您可以直接调用Rake命令,如下所示:-require'rake'classSomeModel注意:在Rails4+中,您将使用Rails.root而不是RAILS_R

ruby-on-rails - 我如何调用 Rake 中的另一个任务

尽管这听起来可能与您在此处找到的其他问题相似,但还是有细微差别。我有两个目录,比如/home/rails/Rake和/home/rails/test_app。rails目录是我放置所有rails项目的地方。在Rake内部,我有一个Rakefile和一个create.rake文件。这就是我的rakefile的样子namespace:setupdodesc"something"task:initdoprint"Nameofthedestinationdirectory:"name=STDIN.gets.stripcp_r'.',"../#{name}/lib/tasks"cd"../#{n

ruby-on-rails - 从 rake 任务中运行工头

我有以下Rake任务:namespace:foremandotask:devdo`foremanstart-fProcfile.dev`endenddesc"RunForemanusingProcfile.dev"task:foreman=>'foreman:dev'forman命令在shell中运行良好,但是当我运行rakeforeman时,出现以下错误:/Users/me/.gem/ruby/2.0.0/gems/bundler-1.5.2/lib/bundler/rubygems_integration.rb:240:in`blockinreplace_gem':foremani

ruby - rake 任务有 "method_missing"吗?

如果我的Rakefile没有找到具有特定名称的任务,我希望rake根据特定规则使用该名称创建一个新任务,如果一个文件缺少任务名称存在。但如果没有,我想回退到默认值(“不知道如何构建任务'foo'!”)。简而言之,Rake是否有method_missing? 最佳答案 我没试过,但快速搜索显示this.Ifyoudefinearulewithanemptystring,youcancatchanytaskthathasn’tbeendefinedelsewhere.Thismakesiteasytodynamicallycreater