Tag: yaml

使用虚线路径密钥字符串访问Ruby哈希

Rails I18n库将YAML文件转换为可通过使用t()函数的虚线路径调用访问的数据结构。 t(‘one.two.three.four’) 有没有人知道如何用Ruby Hash做到这一点? 或者只能直接通过YAML对象?

一个YAML对象可以引用另一个吗?

我想让一个yaml对象引用另一个,就像这样: intro: “Hello, dear user.” registration: $intro Thanks for registering! new_message: $intro You have a new message! 上面的语法只是它可能如何工作的一个例子(它也是它在这个cpan模块中的工作方式 。) 我正在使用标准的ruby yaml解析器。 这可能吗?

Psych to_yaml选项的文档?

Ruby 1.9.3默认使用Psych for YAML。 虽然它的ruby-doc文档 完全缺乏 ,但我能够找到一个外部文档,暗示支持indentation选项。 测试证实了这一点: irb(main):001:0> RUBY_VERSION #=> “1.9.3” irb(main):002:0> require ‘yaml’ #=> true irb(main):003:0> [[[1]]].to_yaml #=> “—\n- – – 1\n” irb(main):009:0> [[[1]]].to_yaml indentation:9 #=> “—\n- – – 1\n” 可能有更多选项支持。 具体来说,我想知道如何更改换行宽度或完全禁用它。 有哪些选择?

Thor&YAML输出为二进制?

我正在使用Thor并尝试将YAML输出到文件中。 在irb中,我得到了我的期望。 YAML格式的纯文本。 但是当Thor的一个方法的一部分,它的输出是不同的…… class Foo “Xavier”, “age” => 30} puts test # {“name”=>”Xavier”, “age”=>30} puts test.to_yaml # !binary “bmFtZQ==”: !binary |- # WGF2aWVy # !binary “YWdl”: 30 File.open(“data/config.yml”, “w”) {|f| f.write(test.to_yaml) } end end 有任何想法吗?

有没有办法用轨道引用yaml中的常量?

有没有办法让我的en.yml文件包含常量? # en.yml foo: bar: I love BAZ so much! # initializers/constants.rb BAZ = “stackoverflow.com” I18n.t(“foo.bar”) -> “I love stackoverflow.com so much!” ? 如果没有,有没有办法自我引用yaml文件? foo: bar: I love *baz* so much! baz: stackoverflow.com I18n.t(“foo.bar”) -> “I love stackoverflow.com so much!”

如何在YAML文件中使用变量?

我有YAML文件,需要将变量作为输入: outputters: – type : DateFileOutputter name : logfile level : DEBUG date_pattern: ‘%Y%m%d’ trunc : ‘false’ dirname : “/home/sameera/workspace/project/log” filename : “message.log” formatter : date_pattern: ‘%m/%d/%Y %H:%M:%S’ pattern : ‘%d %l – %m’ type : PatternFormatter 我想将dirname作为参数传递,例如: dirname : “” 我的LOGFILE_PATH在名为init.rb的文件中定义。

如何在不丢失注释和变量的情况下更新Rails语言环境YAML文件?

我正在构建一个Ruby脚本,它可以更改config / locales / *。yml Rails语言环境文件的内容。 这些文件包含许多有用的注释和变量。 通过加载,更新和转储它们,我放弃了这些注释和变量。 如何在保留注释和变量的同时以编程方式更新YAML文件?

如何以递归方式从(YAML)哈希中删除具有空值的所有键?

我一直试图摆脱我的YAML文件中具有空(空白)值或空哈希值作为值的所有哈希键。 这个早期的post帮助我几乎把它弄好了,但是当有足够深的嵌套时,递归的单行会使我的YAML转储空闲哈希。 我真的很感激任何帮助。 谢谢! proc = Proc.new { |k, v| (v.kind_of?(Hash) && !v.empty? ) ? (v.delete_if(&proc); nil) : v.blank? } hash = {“x”=>{“m”=>{“n”=>{}}}, ‘y’ => ‘content’} hash.delete_if(&proc) 实际输出 {“x”=>{“m”=>{}}, “y”=>”content”} 期望的输出 {“y”=>”content”}

如何从YAML文件加载一些ActiveRecord模型并将其保存到数据库?

我正在尝试将一些查找表数据保存到YAML文件中,以便稍后当我需要在另一台机器上设置我的应用程序时,我可以将数据作为种子数据加载。 数据就像选择选项一样,而且几乎可以设置,因此不必担心序列化和反序列化之间的实时数据变化。 我输出了这样的数据…… file = File.open(“#{RAILS_ROOT}/lib/tasks/questions/questions.yml”, ‘w’) questions = Question.find(:all, :order => ‘order_position’) file << YAML::dump(questions) file.close() 我可以像这样加载文件…… questions = YAML.load_file(‘lib/tasks/questions/questions.yml’) 但是,当我尝试保存问题时,我收到此错误… >> questions[0].save NoMethodError: undefined method `save’ for # 这样做的正确方法是什么?

Ruby:将转义字符串写入YAML

下列… require ‘yaml’ test = “I’m a b&d string” File.open(‘test.yaml’, ‘w’) do |out| out.write(test.to_yaml) end ……输出…… — this is a b&d string 我怎样才能输出它 — ‘this is a b&d string’ ???