Книга: Программирование на языке Ruby
10.2.6. Маршалинг в формате YAML
10.2.6. Маршалинг в формате YAML
Аббревиатура YAML означает «YAML Ain't Markup Language» (YAML — не язык разметки). Это не что иное, как гибкий, понятный человеку формат хранения данных. Он напоминает XML, но «красивее».
Затребовав директивой require
библиотеку yaml
, мы добавляем в каждый объект метод to_yaml
. Поучительно будет посмотреть на результат вывода в этом формате нескольких простых и более сложных объектов.
require 'yaml'
str = "Hello, world"
num = 237
arr = %w[ Jan Feb Mar Apr ]
hsh = {"This" => "is", "just a"=>"hash."}
puts str.to_yaml
puts num.to_yaml
puts arr.to_yaml
puts hsh.to_yaml
# Выводится:
# --- "Hello, world"
# --- 237
# ---
# - Jan
# - Feb
# - Mar
# - Apr
# ---
# just a: hash.
# This: is
Обратным по отношению к to_yaml
является метод YAML.load
, который принимает в качестве параметра строку или поток.
Предположим, что имеется такой файл data.yaml
:
---
- "Hello, world"
- 237
-
- Jan
- Feb
- Mar
- Apr
-
just a: hash.
This: is
Это те же четыре элемента данных, которые мы видели раньше, только они сгруппированы в единый массив. Если загрузить этот поток, то получим массив-
require 'yaml'
file = File.new("data.yaml")
array = YAML.load(file)
file.close
p array
# Выводится:
# ["Hello, world", 237, ["Jan", "Feb", "Mar", "Apr"],
# {"just a"=>"hash.", "This"=>"is"} ]
В общем и целом YAML — еще один способ выполнить маршалинг объектов. На верхнем уровне его можно использовать для самых разных целей. Например, человек может не только читать данные в этом формате, но и редактировать их, поэтому его естественно применять для записи конфигурационных файлов и т.п.
YAML позволяет и многое другое, о чем мы не можем здесь рассказать. Дополнительную информацию вы найдете на сайте ruby-doc.org или в справочном руководстве.
- 10.2.1. Простой маршалинг
- 10.2.2. Более сложный маршалинг
- 10.2.3. Ограниченное «глубокое копирование» в ходе маршалинга
- 10.2.4. Обеспечение устойчивости объектов с помощью библиотеки PStore
- 10.2.5. Работа с данными в формате CSV
- 10.2.6. Маршалинг в формате YAML
- 10.2.7. Преобладающие объекты и библиотека Madeleine
- 10.2.8. Библиотека DBM
- Время показывается в 12-часовом формате, а мне привычнее 24-часовой. Как это изменить?
- С помощью какой программы можно открыть файл в формате DjVu?
- Как обрезать аудиофайл в формате MP3?
- C помощью какой программы можно просмотреть файл в формате VOB?
- Снял видео сотовым телефоном в формате 3GP. Как теперь просмотреть его на компьютере?
- 10.2.5. Работа с данными в формате CSV
- Разработка записной книжки в формате текстового файла
- Записная книжка в формате XML
- 1. Оформите заявку в телевизионном формате
- Приложение 5 Открытие нового торгового комплекса в формате special event
- Приложение 8 Talent endorsement – продвижение бренда в формате special event c участием «звездных» персонажей
- Приложение 9 Продвижение пивных брендов в формате special event