Sha256: 812df441204f3a3ee5c18696982b90e29445a4923d88a40ca5f593ac4ee85970
Contents?: true
Size: 952 Bytes
Versions: 1
Compression:
Stored size: 952 Bytes
Contents
module Trailblazer class Context module Aliasing def initialize(wrapped_options, mutable_options, context_alias: {}, **) super(wrapped_options, mutable_options) @aliases = context_alias.invert end def [](key) return super unless aka = @aliases[key] # yepp, nil/false won't work super(aka) end def key?(key) return super unless aka = @aliases[key] # yepp, nil/false won't work super(aka) end # @private ? def merge(hash) original, mutable_options = decompose self.class.new( original, mutable_options.merge(hash), context_alias: @aliases.invert # DISCUSS: maybe we can speed up by remembering the original options? ) end def to_hash super.merge(Hash[@aliases.collect { |aka, k| key?(k) ? [aka, self[k]] : nil }.compact]) # FIXME: performance! end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trailblazer-context-0.2.0 | lib/trailblazer/context/aliasing.rb |