Module: T::Helpers

Included in:
Generic, Props, Props::ClassMethods, Props::Plugin
Defined in:
lib/types/helpers.rb,
lib/sorbet-runtime.rb

Overview

Use as a mixin with extend (‘extend T::Helpers`). Docs at confluence.corp.stripe.com/display/PRODINFRA/Ruby+Types

Constant Summary collapse

Private =
T::Private

Instance Method Summary collapse

Instance Method Details

#abstract!Object

Class/Module Helpers ###



11
12
13
# File 'lib/types/helpers.rb', line 11

def abstract!
  Private::Abstract::Declare.declare_abstract(self, type: :abstract)
end

#final!Object



19
20
21
# File 'lib/types/helpers.rb', line 19

def final!
  Private::Final.declare(self)
end

#interface!Object



15
16
17
# File 'lib/types/helpers.rb', line 15

def interface!
  Private::Abstract::Declare.declare_abstract(self, type: :interface)
end

#mixes_in_class_methods(mod) ⇒ Object

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.



36
37
38
# File 'lib/types/helpers.rb', line 36

def mixes_in_class_methods(mod)
  Private::Mixins.declare_mixes_in_class_methods(self, mod)
end

#sealed!Object



23
24
25
# File 'lib/types/helpers.rb', line 23

def sealed!
  Private::Sealed.declare(self, Kernel.caller(1..1)&.first&.split(':')&.first)
end