Sha256: 3e9cc048fafe151a2bd7ba6a42b715c2a779092c55db0beb6c708b2ee50e374a

Contents?: true

Size: 1.47 KB

Versions: 108

Compression:

Stored size: 1.47 KB

Contents

require 'bel_parser/parsers/ast/node'

module BELParser
  module Language
    module Semantics
      # RelationshipDeprecation implements a {SemanticsFunction} that maps a
      # {BELParser::Parsers::AST::Relationship} to a {SemanticsWarning} if the
      # referenced relationship is deprecated for the
      # {BELParser::Language::Specification}.
      class RelationshipDeprecation
        include SemanticsFunction

        private_class_method :new

        def self.map(node, spec, _namespaces)
          return nil unless node.is_a?(BELParser::Parsers::AST::Relationship)
          return nil if node.string_literal.nil?

          relationship_name = node.string_literal
          rel               = spec.relationship(relationship_name.to_sym)
          return nil unless rel

          RelationshipDeprecationWarning.new(node, spec, rel) if rel.deprecated?
        end
      end

      # Represents a {SemanticsWarning} when a
      # {BELParser::Parsers::AST::Relationship} references a deprecated
      # relationship for the {BELParser::Language::Specification}.
      class RelationshipDeprecationWarning < SemanticsWarning
        attr_reader :deprecated_relationship

        def initialize(relationship_node, spec, deprecated_relationship)
          super(relationship_node, spec)
          @deprecated_relationship = deprecated_relationship
        end

        def to_s
          %(Relationship "#{deprecated_relationship}" is deprecated.)
        end
      end
    end
  end
end

Version data entries

108 entries across 108 versions & 1 rubygems

Version Path
bel_parser-1.1.3-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.1.3 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.1.2-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.1.2 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.1.1-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.1.1 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.8-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.8 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.7-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.7 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.6-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.6 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.5-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.5 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.4-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.4 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.3-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.3 lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.2-java lib/bel_parser/language/semantics/relationship_deprecation.rb
bel_parser-1.0.2 lib/bel_parser/language/semantics/relationship_deprecation.rb