Sha256: f6c89c01279ebca869274041e7b5b0a6ef5c6b85369c190e5dca8a872a865261

Contents?: true

Size: 479 Bytes

Versions: 1

Compression:

Stored size: 479 Bytes

Contents

# frozen_string_literal: true

require 'immutable_struct_ex/version'

# Defines the methods used to create/manage the ImmutableStructEx struct.
module ImmutableStructEx
  class << self
    def new(**hash, &block)
      options_struct = Struct.new(*hash.keys, keyword_init: true, &block)
      options_struct.new(**hash).tap do |struct|
        [:[], *struct.members].each do |method|
          struct.instance_eval { undef :"#{method}=" }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
immutable_struct_ex-0.1.0 lib/immutable_struct_ex.rb