SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011