lib/micro/struct/factory.rb in u-struct-1.0.0 vs lib/micro/struct/factory.rb in u-struct-1.1.0

- old
+ new

@@ -1,23 +1,28 @@ +# typed: true # frozen_string_literal: true module Micro::Struct class Factory require_relative 'factory/members' require_relative 'factory/create_struct' - def initialize(features) - @features = Features.config(features) + def initialize(feature_names) + @features = Features.config(feature_names) end - def new(*required_members, required: nil, optional: nil, &struct_block) + def __create__(required_members, required, optional, struct_block) # :nodoc: members = Members.new(required_members, required, optional) - CreateStruct.with(members, struct_block, @features) + CreateStruct.with(members, @features, struct_block) end + def new(*required_members, required: nil, optional: nil, &struct_block) + __create__(required_members, required, optional, struct_block) + end + def instance(**members, &block) - new(*members.keys, &block).new(**members) + __create__(members.keys, nil, nil, block).new(**members) end end private_constant :Factory end