Sha256: a8441483bc563c2edb8244cf86a306b143c28098b02af0a33a2349ff23594471

Contents?: true

Size: 984 Bytes

Versions: 3

Compression:

Stored size: 984 Bytes

Contents

module Steep
  class Project
    class NullListener
      def parse_signature(project:, file:)
        yield
      end

      def parse_source(project:, file:)
        yield
      end

      def check(project:)
        yield
      end

      def validate_signature(project:)
        yield
      end

      def type_check_source(project:, file:)
        yield
      end

      def clear_project(project:)
        yield
      end

      def load_signature(project:)
        yield
      end
    end

    class SyntaxErrorRaisingListener < NullListener
      def load_signature(project:)
        yield.tap do
          case signature = project.signature
          when SignatureHasSyntaxError
            raise signature.errors.values[0]
          end
        end
      end

      def parse_source(project:, file:)
        yield.tap do
          case source = file.source
          when ::Parser::SyntaxError
            raise source
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
steep-0.11.1 lib/steep/project/listener.rb
steep-0.11.0 lib/steep/project/listener.rb
steep-0.10.0 lib/steep/project/listener.rb