Sha256: 845ad2ceb71b6acc3b1e3e0cc76b79e665692b8cc71856f640691bbcea1b636d
Contents?: true
Size: 689 Bytes
Versions: 1
Compression:
Stored size: 689 Bytes
Contents
module SoberSwag module Nodes ## # Base class for nodes that contain arrays of other nodes. # This is very different from an attribute representing a node which *is* an array of some element type!! class Array < Base def initialize(elements) @elements = elements end attr_reader :elements def map(&block) self.class.new(elements.map { |elem| elem.map(&block) }) end def cata(&block) block.call(self.class.new(elements.map { |elem| elem.cata(&block) })) end def deconstruct @elements end def deconstruct_keys(keys) { elements: @elements } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sober_swag-0.1.0 | lib/sober_swag/nodes/array.rb |