Ruby: 是否可以在方法中使用 heredoc?
Ruby: Is it possible to have a heredoc inside a method?
我想将 heredoc 放入方法中,以便在调用该方法时显示为 cli 工具的帮助消息。但是,我一直收到“在 EOF 之前的任何地方都找不到字符串 'error_string'”。
我认为这是因为它在方法内部,在 class 内部,并且终止符需要单独一行,而在 method/class 内部缩进时则不需要。最好我希望在方法中定义帮助消息,或者最坏的情况是 class,这是可能的还是在文件中的所有其他内容之外定义它的唯一方法(作为全局变量)并调用它在方法中?
为简洁起见,我的代码如下。
class TodoTool
def help
puts <<USAGE
Usage:
- Create log: todo_list create <task log title> <task title> <task content>
- View logs and tasks: todo_list view
- Add task: todo_list add <log to add to> <task title to add> <task content to add>
- Remove task: todo_list remove <log to remove from> <task to remove>
USAGE
end
end
一个字符修复:~
搜索“squiggly heredoc”了解更多信息,或阅读 docs。它删除了开头的空格,并允许终止符前面有空格。
class TodoTool
def help
puts <<~USAGE
Usage:
- Create log: todo_list create <task log title> <task title> <task content>
- View logs and tasks: todo_list view
- Add task: todo_list add <log to add to> <task title to add> <task content to add>
- Remove task: todo_list remove <log to remove from> <task to remove>
USAGE
end
end
我想将 heredoc 放入方法中,以便在调用该方法时显示为 cli 工具的帮助消息。但是,我一直收到“在 EOF 之前的任何地方都找不到字符串 'error_string'”。
我认为这是因为它在方法内部,在 class 内部,并且终止符需要单独一行,而在 method/class 内部缩进时则不需要。最好我希望在方法中定义帮助消息,或者最坏的情况是 class,这是可能的还是在文件中的所有其他内容之外定义它的唯一方法(作为全局变量)并调用它在方法中?
为简洁起见,我的代码如下。
class TodoTool
def help
puts <<USAGE
Usage:
- Create log: todo_list create <task log title> <task title> <task content>
- View logs and tasks: todo_list view
- Add task: todo_list add <log to add to> <task title to add> <task content to add>
- Remove task: todo_list remove <log to remove from> <task to remove>
USAGE
end
end
一个字符修复:~
搜索“squiggly heredoc”了解更多信息,或阅读 docs。它删除了开头的空格,并允许终止符前面有空格。
class TodoTool
def help
puts <<~USAGE
Usage:
- Create log: todo_list create <task log title> <task title> <task content>
- View logs and tasks: todo_list view
- Add task: todo_list add <log to add to> <task title to add> <task content to add>
- Remove task: todo_list remove <log to remove from> <task to remove>
USAGE
end
end