Sha256: 280ae21ff8beb20b261b548880f69d4e09cf6f5a4083fe58c0d6fe87aa213f62
Contents?: true
Size: 672 Bytes
Versions: 1
Compression:
Stored size: 672 Bytes
Contents
module Rupture module Map def map? true end def assoc(*kvs) into(kvs.seq.partition(2)) end def into(other) other.seq.reduce(as_map) do |map, (k,v)| map.put(k,v) end end def update(key, fn = nil, *args, &block) if fn assoc(key, fn.call(self[key], *args, &block)) else assoc(key, yield(self[key])) end end def update_each(keys, *args, &block) map = as_map keys.each do |key| update(key, *args, &block) end map end def destruct(*keys) vals = keys.seq.map(self) block_given? ? yield(*vals) : vals end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rupture-0.2.0 | lib/rupture/map.rb |