Sha256: af55ac60bc73bb622252cc8343ef8d1770cbd548e7cd6cb437f16a1d023e761c

Contents?: true

Size: 547 Bytes

Versions: 15

Compression:

Stored size: 547 Bytes

Contents

# frozen_string_literal: true

require 'immutable_struct_ex/version'
require 'immutable_struct_ex/comparable'
require 'immutable_struct_ex/immutable'

# Defines the methods used to create/manage the ImmutableStructEx struct.
module ImmutableStructEx
  class << self
    def new(**hash, &block)
      Struct.new(*hash.keys, keyword_init: true, &block).tap do |struct|
        return struct.new(**hash).tap do |struct_object|
          struct_object.extend Comparable
          struct_object.extend Immutable
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
immutable_struct_ex-1.0.11 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.10 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.9 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.8 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.7 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.6 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.5 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.4 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.3 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.2 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.1 lib/immutable_struct_ex.rb
immutable_struct_ex-1.0.0 lib/immutable_struct_ex.rb
immutable_struct_ex-0.3.0 lib/immutable_struct_ex.rb
immutable_struct_ex-0.2.3 lib/immutable_struct_ex.rb
immutable_struct_ex-0.2.2 lib/immutable_struct_ex.rb