Sha256: c5643f4dc5ecd70bf32a9f0e1597e78d1bfff8bac9ebc3ccff2e8cc81e170556

Contents?: true

Size: 573 Bytes

Versions: 8

Compression:

Stored size: 573 Bytes

Contents

# typed: strict
# frozen_string_literal: true

module Tapioca
  module Gem
    module Listeners
      class SorbetEnums < Base
        extend T::Sig

        private

        sig { override.params(event: ScopeNodeAdded).void }
        def on_scope(event)
          constant = event.constant
          return unless T::Enum > event.constant

          enums = T.unsafe(constant).values.map do |enum_type|
            enum_type.instance_variable_get(:@const_name).to_s
          end

          event.node << RBI::TEnumBlock.new(enums)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
tapioca-0.8.3 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.8.2 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.7.3 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.8.1 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.8.0 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.7.2 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.7.1 lib/tapioca/gem/listeners/sorbet_enums.rb
tapioca-0.7.0 lib/tapioca/gem/listeners/sorbet_enums.rb