module BOAST::Annotation

@private

Public Instance Methods

annotate_array(a, level) click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 30
def annotate_array(a, level)
  return a.collect { |e|
    annotate_var(e, level)
  }
end
annotate_indepth?(level) click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 7
def annotate_indepth?(level)
  return false if level > annotate_level
  return false unless annotate_indepth_list.include?(self.class.name.gsub("BOAST::", ""))
  return true
end
annotate_scalar(s, level) click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 18
def annotate_scalar(s, level)
  if s.is_a?(Annotation) and s.annotate_indepth?(level + 1) then
    return { s.annotation_identifier => s.annotation(level + 1) }
  elsif s.is_a?(Numeric)
    return s
  else
    str = s.to_s
    str = nil if str == ''
    return str
  end
end
annotate_var(v, level) click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 36
def annotate_var(v, level)
  if v.is_a?(Array) then
    return annotate_array(v, level)
  else
    return annotate_scalar(v, level)
  end
end
annotation(level) click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 44
def annotation(level)
  anns = {}
  self.class.const_get(:ANNOTATIONS).each { |a|
    var_sym = ("@" + a.to_s).to_sym
    var = self.instance_variable_get(var_sym)
    anns[a] = annotate_var(var, level)
  }
  return anns
end
annotation_identifier() click to toggle source
# File lib/BOAST/Language/Annotation.rb, line 13
def annotation_identifier
  name = self.class.name.gsub("BOAST::", "")
  return "#{name}#{annotate_number(name)}"
end