Sha256: a63d6244ae4d5a3c376df4456e34b0771529aedc2997d544f01d33264a4e23ca
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
# Accumulates captured variables during a query match. # Subclasses `Hash`, providing a non-destructive # {CaptureHash#add} method, and merging. # # @see ActionTree::Basic::Query#captures # @api private class ActionTree::CaptureHash < Hash # {CaptureHash#add} each key and value in the given Hash. # # @return [CaptureHash] self, after merging # def merge!(hsh) hsh.each {|k,v| add(k,v) } self end # Nondestructive version of {CaptureHash#merge!} # # @return [CaptureHash] def merge(*args) dup.merge!(*args) end # Add a specified value to a specified key. # # Depending on the value already at the specified key: # # * `Array`: append the new value # * `nil`: replace with new value # * else: wrap existing value followed by new value in an Array # # @return [CaptureHash] self, after adding def add(key, value) case self[key] when nil then self[key] = value when Array then self[key] << value else self[key] = [self[key], value] end self end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
action_tree-0.2.0 | lib/action_tree/capture_hash.rb |