# NestedArray Предназначен для преобразования в древовидную структуру плоских данных описанных по паттерну «Список смежности» (Adjacency List), то есть в нодах указа предок `parent_id`. Например: ```ruby [ {id: 1, parent_id: nil, name: 'first', …}, {id: 2, parent_id: 1, name: 'second', …}, {id: 3, parent_id: 1, name: 'third', …} ] # ↓ ↓ ↓ [ {id: 1, parent_id: nil, name: 'first', children: [ {id: 2, parent_id: 1, name: 'second', …}, {id: 3, parent_id: 1, name: 'third', …} ], …} ] ``` ## Установка Добавте строку в _Gemfile_ вашего приложения: ```ruby # Версия не расширяет базовый класс Array методами гема. Для использования необходимо преобразовать данные к новому типу, см ниже. # Работа с древовидными массивами. gem 'nested_array', '~> 1.0.0' # Версия с автоматическим расширением базового класса Array методами гема. # Работа с древовидными массивами. gem "nested_array", "~> 2.0.0" ``` И затем выполните `bundle install`. Или установите его как `gem install nested_array` ## Использование __Список методов__ * [to_nested](#to_nested) — преобразует плоскую структуру во вложенную; * [each_nested](#each_nested) — перебирает вложенную стуктуру; * [each_nested!](#each_nested) — перебирает вложенную стуктуру, предоставляя доступ к исходным данным; * [nested_to_html](#nested_to_html) — преобразует вложенную структуру в html вёрстку (многоуровневый список `