10

プロジェクトをミラーリングする環境をセットアップするrakeタスクを作成しようとしています。

task :environment do 
  require 'rubygems'
  require 'sequel'
  # require 'my_projects_special_files'
end

task :foo => [:environment] do
  require 'irb'
  IRB.start
end

「foo」が存在しないと不平を言うirbにつながります(タスクの名前)

10:28:01:irb_test >> rake foo --trace
(/ Users / mwlang / projects / personal / rake / irb_test内)
** fooを呼び出す(first_time)
**呼び出し環境(first_time)
**実行環境
**fooを実行します
レーキが中止されました!
そのようなファイルやディレクトリはありません-foo
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `initialize '
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `open '
/opt/local/lib/ruby/1.8/irb/input-method.rb:68:in `initialize '
/opt/local/lib/ruby/1.8/irb/context.rb:80:in `new '
/opt/local/lib/ruby/1.8/irb/context.rb:80:in `initialize '
/opt/local/lib/ruby/1.8/irb.rb:92:in `new '
/opt/local/lib/ruby/1.8/irb.rb:92:in `initialize '
/opt/local/lib/ruby/1.8/irb.rb:57:in `new '
/opt/local/lib/ruby/1.8/irb.rb:57:in `start '
/ Users / mwlang / projects / personal / rake / irb_test / Rakefile:9
4

5 に答える 5

31

IRB.startは、rakeコマンドラインからのタスク名を含むARGVを調べています。最初にARGVをクリアしてみてください。

require 'irb'
ARGV.clear
IRB.start
于 2010-05-20T18:18:07.933 に答える
2

Ruby 2.4.0以降、これを行うことができます。

require 'irb'
binding.irb
于 2017-01-12T03:10:34.897 に答える
1

rakeファイルの内容は以下のとおりで、Rakefileという名前です。
rake test:consoleを使用してターミナルから実行します

require 'rubygems'
require 'rake'

namespace :test do
desc "Test Task"

 desc "Load stuff in IRB."
 task :console do

   exec "irb -r rubygems -r sanitize" #require multiple gems by typing -r gemname

 end

 end

rake test:consoleを実行すると、irbがポップアップし、Sanitizeのcleanメソッドを使用して機能することがわかります。
Sanitize.clean「テキスト」

于 2011-02-03T20:50:46.927 に答える
1

そのようなタスクを実行するときに、同様の問題が発生しました。これをデフォルトのタスクに設定すると問題は解決しましたが、バグの解決にはなりませんでした。ここで:私がしたこと

task :console do
  exec 'irb -I lib -r startingscript.rb'
end
于 2010-05-01T12:55:20.927 に答える
0

どうやら、タスクの定義方法に問題があるはずです。変更するとどうなりますか

task :foo => [:environment] do

task :foo => :environment do
于 2010-04-21T14:38:20.073 に答える