0Pricing
Ruby Academy · Урок

Конфигурация YAML

Загружайте и выгружайте YAML

«Конфигурация YAML» — бесплатный урок Ruby Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.

Что такое YAML?

YAML (YAML — это не язык разметки) — удобный для человека формат данных, широко используемый для конфигурации. Ruby читает его через библиотеку yaml, построенную на Psych.

require 'yaml'
text = "name: Ruby\nyear: 1995"
p YAML.load(text)

Загрузка YAML

YAML.load разбирает строку YAML в объекты Ruby. Отображения становятся хешами, а последовательности — массивами.

require 'yaml'
cfg = YAML.load("port: 8081\ndebug: true")
puts(cfg['port'])
puts(cfg['debug'])

Отступы определяют структуру

YAML использует отступы — пробелы, но никогда не табуляции — для обозначения вложенности. Каждый следующий уровень имеет больший отступ.

require 'yaml'
text = "server:\n  host: localhost\n  port: 8081"
cfg = YAML.load(text)
puts(cfg['server']['port'])

Списки в YAML

Последовательность записывается с начальными дефисами. При разборе она превращается в массив Ruby.

require 'yaml'
text = "tags:\n  - fun\n  - oop\n  - dynamic"
p YAML.load(text)['tags']

Сериализация в YAML

YAML.dump (или to_yaml) сериализует объекты Ruby обратно в текст YAML.

require 'yaml'
data = { 'name' => 'Ruby', 'tags' => ['fun', 'oop'] }
puts(YAML.dump(data))

Скалярные типы

YAML определяет типы: числа, логические значения (true/false) и null преобразуются в соответствующие значения Ruby.

require 'yaml'
cfg = YAML.load("count: 3\nactive: false\nnote: null")
puts(cfg['count'].class)
puts(cfg['note'].inspect)

Ключи-символы

Ключ, записанный с начальным двоеточием, при загрузке становится символом Ruby.

require 'yaml'
cfg = YAML.load(":env: production")
p cfg

Несколько документов

Один YAML-файл может содержать несколько документов, разделённых с помощью ---. YAML.load_stream возвращает их все.

require 'yaml'
text = "a: 1\n---\nb: 2"
docs = YAML.load_stream(text)
puts(docs.length)

Запись файла конфигурации

Сохраните хэш настроек в удобочитаемом YAML-файле.

require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'config.yml')
File.write(path, { 'port' => 8081 }.to_yaml)
puts(File.read(path))

Чтение файла конфигурации

YAML.load_file читает и разбирает файл за один вызов — это типичный способ загрузки конфигурации приложениями.

require 'yaml'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'app.yml')
File.write(path, "name: AppPanel\nport: 8081")
cfg = YAML.load_file(path)
puts(cfg['name'])

Безопасная загрузка

Загрузка ненадёжного YAML может быть небезопасной. YAML.safe_load по умолчанию ограничивает загрузку базовыми типами, защищая от вредоносных данных.

require 'yaml'
cfg = YAML.safe_load("port: 8081\nname: app")
puts(cfg['port'])

Быстрая проверка

Что YAML использует для выражения вложенности и структуры?

Итоги: конфигурация YAML

Теперь Вы умеете управлять конфигурацией в YAML:

  • YAML.load / load_file для чтения
  • to_yaml / YAML.dump для записи
  • Отступы определяют вложенность, а дефисы создают списки
  • Скаляры распознаются как числа, логические значения и null
  • Для ненадёжных входных данных предпочтительно использовать safe_load
require 'yaml'
puts(YAML.load("x: 5")['x'] * 2)

Часто задаваемые вопросы

Урок «Конфигурация YAML» бесплатный?

Да — полный текст урока «Конфигурация YAML» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.

Чему я научусь в уроке «Конфигурация YAML»?

Загружайте и выгружайте YAML Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Конфигурация YAML»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Чтение и запись JSON
  2. Работа с CSV
  3. Конфигурация YAML
  4. Выбор формата
← Назад к Ruby Academy