Gemfileを処理するRubyコードがあります。それはいくつかの宝石を追加し、他の宝石を取り除きます。私は、ブロックの最後の2行(gem 'byebug ...
ラインと、それ以上のコメント)を削除するには、次の2行を使用していRuby with Thorでファイルにgsubを使用した後に余分な空白行があるのはなぜですか?
group :development, :test do
# The gem version is a recommended starting place; upgrade if needed.
gem 'pry-rails', '~> 0.3.4'
# Enhance pry with byebug (which gives more debugger commands and other goodies).
# The gem version is a recommended starting place; upgrade if needed.
gem 'pry-byebug', '~> 3.4.0'
# Use rspec for testing
gem 'rspec-rails', '~> 3.5.1'
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platform: mri
end
:次のようになります。Gemfileのセクションがあります。
gsub_file(full_app_gemfile_path, /^\s*gem\s*("|')byebug.*$/, "", verbose: false)
gsub_file(full_app_gemfile_path, /^\s*#.*Call.*("|')byebug("|').*$/, "", verbose: false)
gsub_file
はThor
宝石によって提供される方法です。除去は動作しますが、余分な空白行がgroup :development, :test do
後に挿入されているということですなぜ私はGemfile
group :development, :test do
# The gem version is a recommended starting place; upgrade if needed.
gem 'pry-rails', '~> 0.3.4'
# Enhance pry with byebug (which gives more debugger commands and other goodies).
# The gem version is a recommended starting place; upgrade if needed.
gem 'pry-byebug', '~> 3.4.0'
# Use rspec for testing
gem 'rspec-rails', '~> 3.5.1'
end
で、次のコードで終わりますか?ラインが削除された場所のどこにもありません。それはおそらくThorの宝石のバグかもしれませんが、私はそれが正規表現の問題かどうか疑問に思っています。
更新
私はちょうど(潜在的なトールの問題を排除するために)生のルビーGSUBを使用してみました。私はmy_gsub
を呼び出すためにgsub_file
を呼び出している2つの行を変更すると、私は今group :development, :test do
後に2行の空白行を取得し、ヘルパーメソッド
def my_gsub(path, regex, str)
text = File.read(path)
rep = text.gsub(regex, str)
File.open(path, "w") {|file| file.puts rep}
end
を作成しました。
Thorのバグのようです。 2つの 'gsub'のどれが行を追加しているのか確認できますか? – ndn
私はちょうどテキストを更新しました。私はRubyの 'gsub'コマンドを直接呼び出すためのヘルパーメソッドを作成したので、Thorをトラブルシューティングから削除することができます。今私は2つの空白行を得ています。 – CodeSmith