Sha256: 45bc4393d8e7709dd68e965cc1a3d72123b83d5b917a3bc607328981ea01d18d
Contents?: true
Size: 610 Bytes
Versions: 325
Compression:
Stored size: 610 Bytes
Contents
# frozen_string_literal: true module EacRubyUtils module Immutable class BaseAccessor common_constructor :name do self.name = name.to_sym end def duplicate_object(object) accessor_new_value = yield(immutable_value_get(object)) new_values = object.send(:immutable_values_get).merge(name => accessor_new_value) r = object.class.new(*object.immutable_constructor_args) r.send(:immutable_values_set, new_values) r end def immutable_value_get(object) object.send(:immutable_values_get)[name] end end end end
Version data entries
325 entries across 325 versions & 4 rubygems