1

我是 Ruby 和编程的新手。我想创建一个小程序来自动化我目前正在手工完成的一项更繁琐的工作任务,但我不知道从哪里开始。

人们通过在线表格注册参加课程,我会在每天结束时以 CSV 文件的形式收到他们的注册信息。我逐行浏览该文档,并根据他们在在线表格上的输入生成一封确认电子邮件发送给他们:他们想参加的课程、他们的房间偏好、他们选择为课程支付的费用(滑动规模)等。电子邮件最终看起来像这样:

亲爱的某某, 感谢您报名参加 Superdude 教授的“某某很棒的课程”。该课程于 2030 年 9 月 1 日星期一下午 4 点开始,星期四下午 1 点结束。你付了这么多钱……

等等。因此,理想情况下,该程序将接收包含“学生姓名”、“课程名称”、“已付费”等信息的 CSV 文档,并根据文本块生成电子邮件(“亲爱的,感谢您注册 _,”)和变量(课程日期)存储在外部,因此无需进入源代码(可能是 CSV 和纯文本文件)即可轻松编辑。

此外,我需要输出为富文本格式,这样我就可以加粗并在某些内容下划线。我熟悉 Markdown,所以我可以在源代码中使用它,但如果输出可以是富文本,那将是理想的。

我不指望任何人为我编写程序,但如果你能让我知道我应该研究什么,甚至我应该谷歌搜索什么,那将非常有帮助。

4

1 回答 1

3

我假设您正在尝试整理一封电子邮件。如果是这样,我可能会从一个简单的 ERB 模板开始。如果要生成HTML,可以写一个HTML模板和一个纯文本模板;变量替换对两者的工作方式相同,除了您需要对包含 HTML 认为特殊的字符(例如,与号、大于、小于)的任何内容进行 html 转义。请参阅此处的ERB 文档

如果您尝试解析 CSV,请使用 FasterCSV 或类似的库。FasterCSV 记录在这里。

如果要发送电子邮件,可以使用ActionMailer、邮件 gem 或pony gem。ActionMailer 是 rails 的一部分,但可以独立使用。Pony 也是创建电子邮件的好门面;ActionMailer 和 Pony 都依赖于“邮件”gem,所以除非您想花更多时间思考电子邮件格式的工作原理,否则请使用其中一种。

如果您不尝试发送电子邮件,而是尝试创建格式化文档,您仍然可以使用 ERB,但使用它在 TeX 中生成输出,或者如果您比我更有冒险精神,则可以使用 Word 兼容XML 文档。或者,如果您喜欢 Microsoft Word 或 RTF,您可以尝试http://ruby-rtf.rubyforge.org/ (Ruby RTF) 或使用 COM/OLE 互操作与 Word 对话,但我只会这样做如果我真的必须这样做;如果我不得不走那条路,我可能会接受它,只需使用 Word 中内置的邮件合并功能,也许还需要一点 VBA 代码。

于 2013-09-19T18:02:29.317 回答