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