Class: DTC::Utils::Visitor::HashBuilder

Inherits:
Builder
  • Object
show all
Defined in:
lib/dtc/utils/visitor.rb

Overview

Subclasses the ‘Builder` to create hash based hierarchies, using the first argument as the key in the parent hash

Does not tolerate duplicate keys by default. Override ‘key_collision` to change this.

Example:

DTC::Utils::Visitor::DSL::accept(DTC::Utils::Visitor::HashBuilder) {
  container(:arg1) { child_item(:arg2) }
  root_child_item
}.root

=>

{:container=>{nil=>[:arg1], :child_item=>[:arg2]}, :root_child_item=>[]}

Instance Method Summary collapse

Methods inherited from Builder

#add, #enter, #leave, #root

Constructor Details

#initialize(root = {}) ⇒ HashBuilder

Returns a new instance of HashBuilder.



210
211
212
# File 'lib/dtc/utils/visitor.rb', line 210

def initialize root = {}
  super root
end