Sha256: 9a7ce1e83aeb0dc0c59747d8de1a2e2266b3db77ae7bd3eb00dca871d6e28c4c

Contents?: true

Size: 1.05 KB

Versions: 49

Compression:

Stored size: 1.05 KB

Contents

require 'bel_parser/language'
require 'bel_parser/parsers/ast/node'
require 'bel_parser/quoting'
require 'concurrent/hash'
require_relative '../keywords'
require_relative '../state_function'

module BELParser
  module Script
    module State
      class BELVersion
        extend StateFunction
        extend BELParser::Quoting
        extend Keyword

        TARGET_NODE         = BELParser::Parsers::AST::DocumentProperty
        DEFAULT_BEL_VERSION = '2.0'

        def self.consume(ast_node, script_context)
          return unless ast_node.is_a?(TARGET_NODE)
          name, value = ast_node.children
          name_string  = name.identifier.string_literal
          return unless is_bel_version?(name_string)

          value_string = unquote(value.children[0].string_literal)
          begin
            spec = BELParser::Language.specification(value_string)
          rescue ArgumentError
            spec = BELParser::Language.specification(DEFAULT_BEL_VERSION)
          end
          script_context[:specification] = spec
        end
      end
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
bel_parser-1.0.0.alpha.46-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.46 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.45-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.45 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.44-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.44 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.43-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.43 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.42-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.42 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.41-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.41 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.40-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.40 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.39-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.39 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.38-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.38 lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.37-java lib/bel_parser/script/state/bel_version.rb
bel_parser-1.0.0.alpha.37 lib/bel_parser/script/state/bel_version.rb