6 EKİM 2010, ÇARŞAMBA
Nasıl YAML dosyası ayrıştırmak?
Aşağıdaki içeriği ile YAML dosyası ayrıştırmak için nasıl bilmek istiyorum:
---
javascripts:
- fo_global:
- lazyload-min
- holla-min
Şu anda bu şekilde ayrıştırmak için çalışıyorum:
@custom_asset_packages_yml = (File.exists?("#{RAILS_ROOT}/config/asset_packages.yml") ? YAML.load_file("#{RAILS_ROOT}/config/asset_packages.yml") : nil)
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global'].each{ |script|
script
}
}
end
Ama işe yaramıyor ve bana değeri sıfır olan bir hata veriyor.
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
Eğer bunu denersem, bütün dize (- minholla-fo_globallazyload dk) koyar:
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global']
}
end
CEVAP
6 EKİM 2010, ÇARŞAMBA
Belki ben bir şey eksik, ama neden dosyayı ayrıştırmak için deneyin? Neden sadece YAML yük ve sonucu olan nesne(ler) incelemek değil mi?
Eğer örnek YAML some.yaml
, o zaman bu ise:
require 'yaml'
thing = YAML.load_file('some.yml')
puts thing.inspect
bana verir
{"javascripts"=>[{"fo_global"=>["lazyload-min", "holla-min"]}]}
Bunu Paylaş:
Nasıl bir iç YAML dosyası ekleyebilirs...
Nasıl Linux kabuk komut dosyasından YA...
Nasıl SQLite veritabanı dosyası tablol...
Nasıl Python dosyası eklemek musunuz?...
Nasıl bir toplu iş dosyası komut satır...