0

如何使用 Ruby 将名称/值对(也称为哈希)存储在其中值也可以是多行文本的文件中?当然我想用最简单的方式编码。我之前在 Windows 中看到过这样的文本文件:

[name]
Dr. Hash Mark

[biografy]
Bla bla bla
bla bla bla
bla bla bla

[works]
The big red one (1923)
The little black zero (1926)

Ruby 是否有任何库或 gem 来处理此类文件?也许我可以使用 XML 和 XMLSimple gem:

<man>
 <name>Dr. Hash Mark</name>
 <biografy>
  Bla bla bla
  bla bla bla
  bla bla bla
 </biografy>
 <works>
  The big red one (1923)
  The little black zero (1926)
 </works>
</man>

它们都对我有好处,但我还需要一个方便的应用程序来用数据填充一堆这种文本文件,我不知道使用哪个应用程序来生成这样的文本文件,这些文件以后可以用 Ruby 读取. 我想到了一个关系数据库应用程序——但我不确定——我可以在其中定义我的数据结构(名称、简历、作品),然后我得到文本字段来填充数据,然后将数据保存在给定的文本文件中的格式。任何人都可以帮助我如何实现这一目标吗?

4

1 回答 1

2

YAML 是一个不错的选择,它在 stdlib 中有一个库,它是人类可读/可编辑的,它被广泛使用(例如 Rails 中的设置文件),它支持多行字符串:

require 'yaml'

filename = 'hash.yaml'
original_hash = {'a' => 'b', 'c' => "d\ne"}
File.write filename, YAML.dump(original_hash)

puts "FILE LOOKS LIKE: #{File.read filename}"
puts "-" * 10

resulting_hash = YAML.load File.read(filename)
puts "READ BACK IN: #{resulting_hash.inspect}"

puts "ARE THEY THE SAME? #{original_hash == resulting_hash}"
于 2012-08-19T05:43:57.873 回答