Module: Coradoc::Mirror::ReverseBuilder::FrontmatterTreeToHash
- Defined in:
- lib/coradoc/mirror/reverse_builder.rb
Overview
Walks a typed FrontmatterEntry / FrontmatterValue tree and rebuilds the CoreModel ‘data` hash. Inverse of Handlers::Frontmatter.build_value.
Class Method Summary collapse
Class Method Details
.to_hash(entries) ⇒ Object
577 578 579 580 581 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 577 def to_hash(entries) entries.each_with_object({}) do |entry, result| result[entry.key] = unwrap_value(entry.value) end end |
.unwrap_value(value) ⇒ Object
583 584 585 586 587 588 589 590 591 592 593 594 595 596 |
# File 'lib/coradoc/mirror/reverse_builder.rb', line 583 def unwrap_value(value) case value.value_type when 'map' then to_hash(value.entries || []) when 'array' then (value.items || []).map { |v| unwrap_value(v) } when 'integer' then value.integer_value when 'float' then value.float_value when 'boolean' then value.boolean_value when 'date' then value.date_value when 'datetime' then value.datetime_value when 'symbol' then value.symbol_value&.to_sym when 'nil' then nil else value.string_value end end |