Module: Document
- Extended by:
- Entity
- Defined in:
- lib/rbbt/document.rb,
lib/rbbt/document/annotation.rb
Defined Under Namespace
Modules: Corpus
Class Method Summary collapse
Class Method Details
.define(type, &block) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rbbt/document/annotation.rb', line 4 def self.define(type, &block) send :property, type do segments = self.instance_exec &block Segment.align(self, segments) unless segments.empty? || (Segment === segments && segments.offset) || (Segment === segments.first && segments.first.offset) segments.each do |segment| SegmentAnnotation.setup(segment, :type => type.to_s) unless SegmentAnnotation === segment && segment.type end docid = self.docid segments.each{|s| s.docid = docid if s.docid.nil? } segments end end |
.define_multiple(type, &block) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rbbt/document/annotation.rb', line 21 def self.define_multiple(type, &block) send :property, type => :multiple do |list| doc_segments = self.instance_exec list, &block doc_segments = doc_segments.chunked_values_at(self) if Hash === doc_segments doc_segments.each_with_index do |segments,i| document = list[i] Segment.align(document, segments) unless segments.empty? || (Segment === segments && segments.offset) || (Segment === segments.first && segments.first.offset) segments.each do |segment| SegmentAnnotation.setup(segment, :type => type.to_s) unless SegmentAnnotation === segment && segment.type end docid = document.docid segments.each{|s| s.docid = docid if s.docid.nil? } segments end end end |