Class: BEL::Extension::Format::EvidenceYielder

Inherits:
Object
  • Object
show all
Includes:
Model, Quoting
Defined in:
lib/bel/extensions/bel.rb

Constant Summary collapse

SPECIAL_ANNOTATIONS =
{
  'Citation' => true,
  'Evidence' => true,
}

Constants included from Quoting

Quoting::KeywordMatcher, Quoting::NonWordMatcher

Instance Method Summary collapse

Methods included from Quoting

#always_quote, #ensure_quotes, #quotes_required?, #remove_quotes

Constructor Details

#initialize(data) ⇒ EvidenceYielder

Returns a new instance of EvidenceYielder.



46
47
48
49
50
# File 'lib/bel/extensions/bel.rb', line 46

def initialize(data)
  @data                   = data
  @references             = References.new
  @metadata               = Metadata.new
end

Instance Method Details

#eachObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/bel/extensions/bel.rb', line 52

def each
  if block_given?
    ::BEL::Script.parse(@data).each { |parsed_obj|
      case parsed_obj
      when ::BEL::Language::DocumentProperty
        @metadata.document_header[parsed_obj.name] = parsed_obj.value
      when ::BEL::Model::Statement
        yield to_evidence(parsed_obj, @references, @metadata)
      when ::BEL::Language::AnnotationDefinition
        @references.annotation_definitions[parsed_obj.prefix] = {
          :type   => parsed_obj.type,
          :domain => parsed_obj.value
        }
      when ::BEL::Namespace::NamespaceDefinition
        @references.namespace_definitions[parsed_obj.prefix] = parsed_obj.url
      end
    }
  else
    to_enum(:each)
  end
end