我很高兴地介绍一个新的 Ruby Gem:YPS:YAML 定位系统。
<a href="https://github.com/taichi-ishitani/yps" rel="nofollow">https://github.com/taichi-ishitani/yps</a>
YAML 是 Ruby 生态系统中一种流行的数据序列化格式。我们可以使用内置的 `YAML` 标准库轻松地将 YAML 解析为 Ruby 对象。然而,在处理大型 YAML 文档时,由于解析后的 Ruby 对象缺乏位置信息(即文件名、行号和列号),因此很难准确定位无效或意外的值。
YPS 的开发正是为了解决这个问题。
YPS 解析给定的 YAML 字符串,并为每个解析后的 Ruby 对象(除了 Hash 键)添加其位置信息。您可以使用 `#position` 方法获取接收对象的位置信息,如下所示:
```
require 'yps'
yaml = YPS.load(<<~'YAML')
children:
- name: kanta
age: 8
- name: kaede
age: 3
YAML
# 输出
# name: kanta (文件名: unknown 行 2 列 11)
# age: 8 (文件名: unknown 行 3 列 10)
# name: kaede (文件名: unknown 行 4 列 11)
# age: 3 (文件名: unknown 行 5 列 10)
yaml['children'].each do |child|
child.each do |key, value|
puts "#{key}: #{value} (#{value.position})"
end
end
```
返回首页
最新
厌倦了在手机或网页浏览器上阅读新闻时的各种广告、Cookies等。我创建了一项服务,可以直接访问我最喜欢的RSS新闻源,并将它们传送到我的Kindle上,没有广告和干扰。当我没有足够时间阅读新闻时,新闻文章还会被总结。