Ням-ням, YAML!

Сегодня я торжественно финишировал со сдачей всех своих долгов, успешно отчитавшись по “Электронной коммерции”. Самое интересное, как обычно было на ТКПО у С. А. Орлова. Надо было написать тестовый модуль, для прогонки определенного кода. Поскольку кроме ruby других интерпретаторов не держу, а всякие Delphi/Dotnet долго и неинтересно писал его на ruby. Вынес тестируемый кусок в отдельную функцию, и положил в папку скрипта простой файлик в виде:


- price: 50
  discount: 10
  result: 45

- price: -20
  discount: 10
  result: -1

А дальше сам модуль:


tc = YAML::load( File.open( 'testcase6.yml' ) )
tc.map do |m|
 puts "Result is "+"%3.2f" % discount(m).to_f
end

Коротко и прикольно. Единственное, что могу сказать: не забывайте о пробелах. Иначе, вместо красивого хеша, каждый тестовый вариант будет всего лишь стрингом, с которым конечно можно работать, но гемморою не меньше чем в delphi.
Подробнее о YAML:

5 thoughts on “Ням-ням, YAML!”

  1. Тут же все просто. Я говорю о том, что в ruby есть хороший механизм обработки файлов формата YAML. Тоесть ты можешь построить целую структуру, например,

    
    config:
        server: 
            host: localhost
            type: mysql
            pass: abvgdk
            user: admin
        login:
            user: admin74
            pass: vasja74
    strings:
        title: something
    

    а в самой программе, загрузив их одной строчкой

    
    cfile = YAML::load( File.open( 'config.yml' ) )
    

    обращаться к ним, как

    
        cfile['config']['server']['host']
    #или просто взять и присвоить в переменную целый массив
        serverstrings = cfile['strings']
    
  2. ОМГ Саня…ты разрушаешь мне моск! 🙂 Шутка кнечна…в общих чертах понятно, но чую я ещё не дорос до этих вещей…я пока в Дельфи покопаюсь 🙂

  3. Скажу вам по секрету, работа с YAML есть практически во всех языках 🙂

    Yaml рулит именно потому что работа с ним даёт одинаковый результат на любой платформе

  4. Индеец, спасибо что заглянул. Я внимательно слежу за тем, что творится у тебя на блогах (и в жж, и в английской версии).

Leave a Reply

Your email address will not be published. Required fields are marked *