Module: ConvenientService::Support::Copyable
- Included in:
- Common::Plugins::CanBeCopied::Concern, Core::Entities::Config::Entities::MethodMiddlewares::Entities::Caller::Concern::InstanceMethods, Core::Entities::Config::Entities::MethodMiddlewares::Entities::Container::Concern::InstanceMethods, ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::Expressions::Base, ConvenientService::Service::Plugins::CanHaveConnectedSteps::Entities::StepCollection, ConvenientService::Service::Plugins::CanHaveSequentialSteps::Entities::StepCollection, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Entities::Callers::Base, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Entities::Directions::Base, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Entities::Key, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Entities::Name, ConvenientService::Service::Plugins::CanHaveSteps::Entities::Step::Concern::InstanceMethods, ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Concern::InstanceMethods, ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Code::Concern::InstanceMethods, ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Data::Concern::InstanceMethods, ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Message::Concern::InstanceMethods, ConvenientService::Service::Plugins::HasJSendResult::Entities::Result::Plugins::HasJSendStatusAndAttributes::Entities::Status::Concern::InstanceMethods, DependencyContainer::Entities::Method
- Defined in:
- lib/convenient_service/support/copyable.rb
Instance Method Summary collapse
Instance Method Details
#copy(overrides: {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/convenient_service/support/copyable.rb', line 24 def copy(overrides: {}) defaults = {args: {}, kwargs: {}} ## # IMPORTANT: Do not mutate `overrides`. # overrides = defaults.merge(overrides) args = case overrides[:args] when ::Array then overrides[:args] when ::Hash then Utils::Array.merge(to_arguments.args, overrides[:args]) end kwargs = to_arguments.kwargs.merge(overrides[:kwargs]) block = overrides[:block] || to_arguments.block self.class.new(*args, **kwargs, &block) end |