我正在阅读使用 Rails 6进行敏捷 Web 开发这本书,我在“迭代”结束时完成了并且bin/rails test在固定装置的某个地方得到了一个可怕的长而丑陋的转储。(我对 Rails 并不陌生……只是想赶上 Rails 6 中的所有新玩具并刷新)。
我确保我的所有代码都与示例代码匹配,然后最终ps -ef | grep -i spring找到了三个进程——24 小时前的一个。我用 just 杀了他们,kill <pid>然后照做了bin/rails test,一切都很好。
我意识到“理论上”我不需要告诉spring重启,但显然有时你会这样做。那么,规定的重启方法是spring什么?
Rubocop 表示该线路require 'rails_helper'无法解析路径。
我通过 lsm-mode 调用的 Solargraph 使用 Rubocop,它位于使用 Rspec 处理 Ruby on Rails 项目的 Docker 容器内。Emacs 进程在本地笔记本电脑上运行,并使用 lsm-docker 激活 Solargraph。
docker compose 有三个容器,一个带有 Postgres 的 db 容器,一个运行 Rails 的 Web 容器,以及另一个用于 Solargraph 进程的容器。Solargraph 容器和 Web 容器从我正在构建的同一个图像开始。构建过程包括填充 Solargraph 的两个步骤:
( grep -s solargraph /hatred/Gemfile > /dev/null && /root/bin/solargraph download-core && /root/bin/solargraph bundle )
Run Code Online (Sandbox Code Playgroud)
我正在使用 Bundler 的 bin 目录中的 Solargraph 可执行文件。
我是 Rubocop、Solargraph 和 lsm-mode 的新手。
在我使用自动生成的规范文件中,rails g scaffold ...我有一个require 'rails_helper'. 做rspec path/to/spec它找到的工作 …
我的班级中有一个File,我想each_line使用相同的功能来实现,File#each_line以便可以使用块或不使用块调用它。在没有块的情况下调用时,Enumerator返回an 。
这是我目前的代码:
def each_line(&block)
if block_given?
read_loop(&block)
else
Enumerator.new do |y|
read_loop(&y)
end
end
end
private
def read_loop(&block)
while line = readline
block.yield line
end
end
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更简洁的惯用方式来实现 each_line 而不是询问是否传递了一个块并且在每种情况下做非常相同的事情只是略有不同。
readline是类中的一个公共方法(它做了更多的事情File#readline。