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