草庐IT

ruamel.yaml

全部标签

ruby - 转储 YAML 时如何强制使用双引号?

我有一个小脚本可以自动执行YAML文件中的某些操作。我读取原始YAML文件并将其转换为哈希,然后dump修改后写入文件:File.open(output_file,"w")do|out|YAML.dump(modified_hash,out)end这很好用,但如果不需要,它会删除字符串周围的双引号。这是有效的YAML,但看起来不太好。我可以在每个字符串的末尾添加一个空格来强制使用单引号,但我对此不太满意。有什么办法可以在字符串周围强制使用双引号吗? 最佳答案 这很好用。我从here得到的require'psych'ast=Psych

ruby-on-rails - 如何在不使用任何 yaml 文件的情况下建立第二个数据库连接?

我有一个在Heroku上运行的应用程序,我想建立与第二个数据库的连接(来自另一个在Heroku上运行的应用程序)。我看到的针对多个数据库的所有解决方案都涉及database.yml文件,但Heroku不会这样做,他们指示我在另一个应用程序中使用DATABASE_URL。我想我需要做一些事情:DatabaseName::Base.establish_connection(DATABASE_URL)然后我就可以使用了establish_connection:DatabaseName在适当的模型中。我放在哪里DatabaseName::Base.establish_connection(DA

ruby - Thor 阅读配置 yaml 文件以覆盖选项

我正在尝试使用Thor创建一个可执行的ruby​​脚本。我已经为我的任务定义了选项。到目前为止我有这样的东西classCommand:hash,:required=>true,:aliases=>"-L",:desc=>"languagestoconvert"...defcsv2strings(filename)...end...defconfigargs=options.dupargs[:file]||='.csvconverter.yaml'config=YAML::loadFile.open(args[:file],'r')endend当调用csv2strings时不带参数,我希

ruby - 在 markdown 文件中编辑 YAML Frontmatter

在ruby​​中是否有某种方法可以编辑markdown文件顶部的YAMLFrontmatter,就像Jekyll和Middleman中使用的那样?类似于:defupdate_yaml#magicthatchangesA:1toA:2inFrontmatterblockend然后我的Markdown文件将从---A:1---#TitleWords.Morewords.Thisisthewordspartofthefile.到---A:2---#TitleWords.Morewords.Thisisthewordspartofthefile.似乎唯一的选择是解析整个文件,然后重写整个文件,

ruby - 保留从 Ruby 中的文件加载 YAML 的键顺序

我想保留从磁盘加载、以某种方式处理并写回磁盘的YAML文件中键的顺序。这是在Ruby(v1.8.7)中加载YAML的基本示例:require'yaml'configuration=nilFile.open('configuration.yaml','r')do|file|configuration=YAML::load(file)#atthispointconfigurationisahashwithkeysinanundefinedorderend#processconfigurationinsomewayFile.open('output.yaml','w+')do|file|YA

ruby - YAML 语法和 Ruby 解析的说明

我是YAML和Ruby的新手。我正在使用以下Ruby代码来解析YAML文件:obj=YAML::load_file('test.yml')“test.yml”的以下YAML文件内容是否有效?案例一:test在这种情况下,我没有指定test的值(类似于test:true),但是我的Ruby解析代码没有抛出错误。我认为这是无效的YAML语法。案例二::test:true在这种情况下,Ruby代码将test视为符号而不是字符串,当我执行putsobj[:test]时,它返回结果为“真的”。这是Ruby的东西吗?其他语言会将其解释为字符串":test"?案例三::test:true:test:

ruby-on-rails - Heroku Ruby 和 YAML 解析命令行检查潜在安全漏洞

我收到了这封Heroku漏洞电子邮件:https://www.ruby-lang.org/en/news/2014/03/29/heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525/?mkt_tok=3RkMMJWWfF9wsRonuKjAZKXonjHpfsX%2B6u8vXaO%2FlMI%2F0ER3fOvrPUfGjI4ASsNjI%2BSLDwEYGJlv6SgFQrjAMapmyLgLUhE%3D在电子邮件中,它说:检查你是否受到影响在您的应用上运行以下命令:$herokurun“ruby-rpsych-e\”pPsy

python - 不同的 YAML 数组表示

我正在使用Python和PyYAML为一个项目编写一个文件类型转换器,在这个项目中我要多次与YAML文件进行相互转换。这些文件随后由我无法控制的单独服务使用,因此我需要将YAML翻译回与我最初获得的相同的内容。我的原始文件包含以下部分:key:-value1-value2-value3使用yaml.load()评估为{key:[value1,value2,value3]}。当我将其翻译回YAML时,我的新文件如下所示:key:[value1,value2,value3]我的问题是,就YAML文件的各种语言解析器而言,这两种形式是否等价。显然使用PyYaml,这些是等价的,但这是否适用于

json - YAML 到 JSON Ruby

我有一个如下所示的YAML文件(带有机器人名称及其参数):conf_file:pipeline_conf_path:/opt/etc/pipeline.confruntime_conf_path:/opt/etc/runtime.confasn_lookup:parameters:database:/opt/var/lib/bots/asn_lookup/ipasnteste.datgroup:"Expert"name:"ASNLookup"module:"onemodule"description:"modifiedby"modify:parameters:configuration

ruby - 如何检查字符串是否是有效的 YAML?

我想检查一个字符串是否是有效的YAML。我想使用gem或库在我的Ruby代码中执行此操作。我只有这个begin/rescue子句,但它没有得到正确的拯救:defvalid_yaml_string?(config_text)require'open-uri'file=open("https://github.com/TheNotary/the_notarys_linux_mint_postinstall_configuration")hard_failing_bad_yaml=file.readconfig_text=hard_failing_bad_yamlbeginYAML.load