Tag: 耙子

你如何在Rake任务之间进行通信?

假设我有一个需要编译一些文件的目标。 该目标有另一个目标作为先决条件,即获取文件的目标。 我们这样说: task :obtain do # obtain files from somewhere end task :compile => :obtain do # do compilation end 假设:obtain目标并不总是将文件放在同一个文件夹中。 我将如何传递:compile路径:obtain找到? 环境变量?

从任务中访问Rake任务描述

在rake任务中,如何查询描述? 会给出的东西: desc “Populate DB” task populate: :environment do puts task.desc # “Populate DB” end

rake db :: migrate实际上是如何工作的

我刚刚开始使用Ruby和Rails,我发现自己真正喜欢的一件事是它让你使用的约定。 我想在我自己的非Ruby项目中模仿这种行为。 我的问题是它是如何实际运作的? 我知道我可以浏览一下Rails代码,但是我的理解还不够,知道它里面发生了什么。 我知道它需要一个基线脚本,然后针对它运行更新架构更改。 但它怎么知道它的版本是什么? 我如何在另一个框架/数据库中模仿它?

如何将rubocop与Rake集成?

rubocop是Ruby的代码样式检查器。 一个类似于rubocop的工具,Cane,可以与Rake集成 。 我更喜欢rubocop to Cane,因为rubocop根据Ruby Style Guide进行检查,它似乎发现了更多的问题 。 为了自动化样式检查过程,我想将rubocop与Rake集成,以便在缺少代码质量时构建失败。 Gem已经支持通过Rake向包添加测试 。 我想对样式检查做同样的事情,以便样式检查与测试一起运行。 我怎样才能做到这一点? 如果有一个Rake文件的帮助,这里有一个: # -*- coding: utf-8; mode: ruby -*- require ‘bundler/gem_tasks’ require ‘rake/testtask’ Rake::TestTask.new do |t| t.libs << 'test' t.test_files = FileList['test/unit/test*.rb'] end desc 'Run tests' task default: :test

Rake中任务名称的别名

当我需要别名某个任务的名字时,我应该怎么做? 例如,如何更改任务名称: rake db:table rake db:create rake db:schema rake db:migration 至: rake db:t rake db:c rake db:s rake db:m 得到答案后编辑: def alias_task(tasks) tasks.each do |new_name, old_name| task new_name, [*Rake.application[old_name].arg_names] => [old_name] end end alias_task [ [:ds, :db_schema], [:dc, :db_create], [:dr, :db_remove] ]

如何从其他Ruby脚本调用标准Rakefile中定义的Rake任务?

是否可以从其他Ruby脚本中调用Rakefile定义的任务 – 而不是somefile.rake的任务? 我希望创建一个新的Rake::Application会自动从同一目录加载Rakefile ,但似乎并非如此。 这是我到目前为止提出的: $LOAD_PATH.unshift File.dirname(__FILE__) require ‘rake’ require ‘pp’ rake = Rake::Application.new rake[:hello].invoke 执行此代码会导致以下结果: /opt/ruby/1.9.2-p180/lib/ruby/1.9.1/rake.rb:1720:in `[]’: Don’t know how to build task ‘hello’ (RuntimeError) from script.rb:7:in `’ pp rake产生以下结果: #<Rake::Application:0x00000101118da0 @default_loader=#, @imported=[], @last_description=nil, @loaders= {“.rb”=>#, “.rf”=>#, “.rake”=>#}, @name=”rake”, @original_dir= “/Users/t6d/Projects/Sandbox/Ruby/rake-from-ruby-script”, @pending_imports=[], @rakefile=nil, @rakefiles=[“rakefile”, “Rakefile”, “rakefile.rb”, “Rakefile.rb”], @rules=[], @scope=[], @tasks={}, @top_level_tasks=[], @tty_output=false> 令人恼火的是@rakefile是nil […]

如何在执行所有其他任务后运行Rake任务? (即Rake AfterBuild任务)

我是Rake的新手并使用它来构建.net项目。 我感兴趣的是有一个Summary任务,打印出已完成内容的摘要。 无论rake调用了什么任务,我都希望始终调用此任务。 有一个简单的方法来实现这一目标吗? 谢谢 关于这个问题的更新,回应Patrick的回答我想要的是在所有其他任务之后运行一次的后续任务,所以我想要的输出是: task :test1 do puts ‘test1’ end task :test2 do puts ‘test2’ end Rake::Task.tasks.each do |t| # t.enhance do # puts ‘after’ # end end $ rake test1 test1 after $rake test2 test2 after $rake test1 test2 test1 test2 after 而如果 task :test3 =>[:test1, :test2] puts ‘test3’ end $rake test3 […]

如何将参数从父任务传递给Rake中的子任务?

我正在写一个Rake脚本,它包含带参数的任务。 我想出了如何传递参数以及如何使任务依赖于其他任务。 task :parent, [:parent_argument1, :parent_argument2, :parent_argument3] => [:child1, :child2] do # Perform Parent Task Functionalities end task :child1, [:child1_argument1, :child1_argument2] do |t, args| # Perform Child1 Task Functionalities end task :child2, [:child2_argument1, :child2_argument2] do |t, args| # Perform Child2 Task Functionalities end 我可以将参数从父任务传递给子任务吗? 有没有办法让子任务变为私有,所以不能独立调用它们?

rake db:create – 找不到JavaScript运行时

这是我得到的错误: sergio@sergio-VirtualBox:~/blog$ rake db:create rake aborted! Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (See full trace by running task with –trace) sergio@sergio-VirtualBox:~/blog$ 所以经过一些搜索后,似乎我需要为Ruby安装一个Javascript运行时。 许多不同的选择之间有区别吗? 似乎Node.js最容易安装,这会回来咬我还是这个选择好吗? 这个答案 ,似乎是我正在寻找的,但我不知道如何利用它。 我在哪里可以找到这个“gemfile”,它是每个rails项目文件还是全局ruby文件? 我很困惑,似乎无法得到我的方位和多个答案相互矛盾,并没有解决问题。 将其添加到您的Gemfile中 gem’therubyracer’,要求:“v8” 并运行 捆绑安装

耙不能迁移

C:\Users\MEGHA\bbbb>rake db:migrate rake aborted! SyntaxError: C:/Users/MEGHA/bbbb/db/migrate/20140402130040_create_comments.rb:4: syntax error, unexpected tIDENTIFIER, expecting keyword_end C:65535:in `disable_ddl_transaction’ Tasks: TOP => db:migrate (See full trace by running task with –trace) 20140402130040_create_comments.rb class CreateComments < ActiveRecord::Migration def change create_table :comments do |t| t.string :post_id=integer t.text :body t.timestamps end end end