Sha256: 2c84b59405b6a98557a4b7a6b3a647020947b0bc15a6a1931285b4da916216dc
Contents?: true
Size: 804 Bytes
Versions: 1
Compression:
Stored size: 804 Bytes
Contents
# frozen_string_literal: true module Micro::Struct class Creator require_relative 'creator/create_module' require_relative 'creator/create_struct' def initialize(features) @features = Features.require(features) end ValidateMemberNames = ->(values) do Validate::Names.(values, label: 'member') end def new(*members, _optional: nil, &block) required_members = ValidateMemberNames[members] optional_members = ValidateMemberNames[_optional] container = CreateModule.with(required_members, optional_members, @features) struct = CreateStruct.with(required_members, optional_members, @features, &block) container.const_set(:Struct, struct) struct.const_set(:Container, container) end end private_constant :Creator end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
u-struct-0.6.0 | lib/micro/struct/creator.rb |