Sha256: 6ef575fd22a426312ae9f52a21eb772f0a6e7b402ae2135d1351951fda03789d

Contents?: true

Size: 975 Bytes

Versions: 7

Compression:

Stored size: 975 Bytes

Contents

module Yoda
  class Server
    module Providers
      # @abstract
      class Base
        class << self
          # @abstract
          # @return [Symbol]
          def provider_method
            fail NotImplementedError
          end

          # @param method [Symbol]
          def provide?(method)
            provider_method == method
          end
        end

        # @return [Notifier]
        attr_reader :notifier

        # @return [Session]
        attr_reader :session

        # @param notifier [Notifier]
        # @param session [Notifier]
        def initialize(notifier:, session:)
          @notifier = notifier
          @session = session
        end

        # @abstract
        # @param params [Hash]
        def provide(params)
          fail NotImplementedError
        end

        # @return [Integer, nil] Seconds to timeout the task. if nil, the task does not timeout.
        def timeout
          nil
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/server/providers/base.rb
yoda-language-server-0.10.0 lib/yoda/server/providers/base.rb
yoda-language-server-0.9.0 lib/yoda/server/providers/base.rb
yoda-language-server-0.8.0 lib/yoda/server/providers/base.rb
yoda-language-server-0.7.2 lib/yoda/server/providers/base.rb
yoda-language-server-0.7.1 lib/yoda/server/providers/base.rb
yoda-language-server-0.7.0 lib/yoda/server/providers/base.rb