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

Version Path
sorbet-runtime-0.5.6287 lib/types/helpers.rb
sorbet-runtime-0.5.6286 lib/types/helpers.rb
sorbet-runtime-0.5.6284 lib/types/helpers.rb
sorbet-runtime-0.5.6281 lib/types/helpers.rb
sorbet-runtime-0.5.6277 lib/types/helpers.rb
sorbet-runtime-0.5.6274 lib/types/helpers.rb
sorbet-runtime-0.5.6267 lib/types/helpers.rb
sorbet-runtime-0.5.6262 lib/types/helpers.rb
sorbet-runtime-0.5.6259 lib/types/helpers.rb
sorbet-runtime-0.5.6257 lib/types/helpers.rb
sorbet-runtime-0.5.6251 lib/types/helpers.rb
sorbet-runtime-0.5.6249 lib/types/helpers.rb
sorbet-runtime-0.5.6239 lib/types/helpers.rb
sorbet-runtime-0.5.6231 lib/types/helpers.rb
sorbet-runtime-0.5.6229 lib/types/helpers.rb
sorbet-runtime-0.5.6225 lib/types/helpers.rb
sorbet-runtime-0.5.6223 lib/types/helpers.rb
sorbet-runtime-0.5.6216 lib/types/helpers.rb
sorbet-runtime-0.5.6212 lib/types/helpers.rb
sorbet-runtime-0.5.6210 lib/types/helpers.rb