Class: OntologyUnited::Serializer::SerializerBase

Inherits:
Object
  • Object
show all
Includes:
OntologyUnited::Stack
Defined in:
lib/ontology-united/serializer/serializer_base.rb

Direct Known Subclasses

OWL::Manchester

Instance Method Summary collapse

Methods included from OntologyUnited::Stack

#current, #parent, #stack

Constructor Details

#initialize(current: nil) ⇒ SerializerBase

Returns a new instance of SerializerBase.



6
7
8
# File 'lib/ontology-united/serializer/serializer_base.rb', line 6

def initialize(current: nil)
  stack.push(current) if current
end

Instance Method Details

#class?(subject) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/ontology-united/serializer/serializer_base.rb', line 37

def class?(subject)
  subject.is_a?(OntologyUnited::DSL::OntologyClass)
end

#join(elements, sep) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/ontology-united/serializer/serializer_base.rb', line 25

def join(elements, sep)
  elements.reduce('') do |str, raw_element|
    str << sep unless str.empty?
    element = yield raw_element
    str << element
  end
end

#mark!(subject) ⇒ Object



17
18
19
# File 'lib/ontology-united/serializer/serializer_base.rb', line 17

def mark!(subject)
  stack.push(subject)
end

#ontology?(subject) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/ontology-united/serializer/serializer_base.rb', line 33

def ontology?(subject)
  subject.is_a?(OntologyUnited::DSL::Ontology)
end

#process(subject, &block) ⇒ Object



10
11
12
13
14
15
# File 'lib/ontology-united/serializer/serializer_base.rb', line 10

def process(subject, &block)
  mark!(subject)
  result = block.call
  unmark!
  result
end

#sentence?(subject) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/ontology-united/serializer/serializer_base.rb', line 41

def sentence?(subject)
  subject.is_a?(OntologyUnited::DSL::OntologySentence)
end

#unmark!Object



21
22
23
# File 'lib/ontology-united/serializer/serializer_base.rb', line 21

def unmark!
  stack.pop
end