gpt4 book ai didi

ruby - 关于使用 gsub 有什么建议吗?在 irb 控制台中工作正常,但不会在实际文件中查找/替换

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:49 25 4
gpt4 key购买 nike

我有一个 webapp 的基本框架(一些静态页面、用户身份验证、使用 rpec 的基本测试)。我想用它作为 future webapps 的基础。我将我的项目命名为“框架”,所以如果我 fork 它,我将遇到大约十几个实例,在这些实例中我必须用我正在创建的新应用程序的名称替换术语“框架”。这个项目是github.com/bnd5k/framework .自述文件包含我需要进行更改的文件列表。我可以手动进行这些更改,但我更愿意将此过程自动化。我认为最简单的做法是在 Framework 中包含一个 rake 文件。因此,我创建了名为 renamer.rake 的 rake 文件。我的 rake 文件基于这篇文章:How to search file text for a pattern and replace it with a given value .这是我想出的。

task :rename do

file_names = ['config/environments/test.rb', 'config/environments/production.rb',
'config/environment.rb']
file_names.each do |file_name|
text = File.read(file_name)
puts text.gsub("Framework", "funktrunkgunk")
end
end

这段代码在用不同的术语替换术语“框架”时有效,但它只在控制台中有效。我需要它来实际更改文件的内容。我需要做什么?我是否需要打开每个文件而不是只阅读它?

仅供引用,此代码仅列出了几个文件(只是为了测试此方法是否有效)并且替换术语最终将是一个变量,而不是“funktrunkgunk”。一旦我把这部分弄下来,我想设置它,这样任何人都可以将框架 repo 克隆到他们的机器上,cd 进入框架目录,启动 rails server,然后在他们的浏览器上转到本地主机以重命名文件那里。我会将 public/index.html 设置为一个基本页面,其中包含一个表单字段,用户可以在其中输入自己的应用程序名称。一旦用户点击“命名应用程序”按钮,它就会运行 rake 文件。这听起来可行吗?

最佳答案

您需要再次将更改后的文本写入文件。

File.open(file_name, 'w') { |f| f << text.gsub("Framework", "funktrunkgunk") }

关于ruby - 关于使用 gsub 有什么建议吗?在 irb 控制台中工作正常,但不会在实际文件中查找/替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9671891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com