Sha256: aaf7887c5e4fc086014d0f9e351ee884ac1466a2ec97c37cca384b0fffcd8f13
Contents?: true
Size: 943 Bytes
Versions: 23
Compression:
Stored size: 943 Bytes
Contents
# frozen_string_literal: true # typed: true # Use as a mixin with extend (`extend T::Helpers`). # Docs at https://confluence.corp.stripe.com/display/PRODINFRA/Ruby+Types module T::Helpers Private = T::Private ### Class/Module Helpers ### def abstract! Private::Abstract::Declare.declare_abstract(self, type: :abstract) end def interface! Private::Abstract::Declare.declare_abstract(self, type: :interface) end def final! Private::Final.declare(self) end def sealed! Private::Sealed.declare(self, Kernel.caller(1..1)&.first&.split(':')&.first) end # Causes a mixin to also mix in class methods from the named module. # # Nearly equivalent to # # def self.included(other) # other.extend(mod) # end # # Except that it is statically analyzed by sorbet. def mixes_in_class_methods(mod, *mods) Private::Mixins.declare_mixes_in_class_methods(self, [mod].concat(mods)) end end
Version data entries
23 entries across 23 versions & 1 rubygems