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
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rbbt/document/annotation.rb', line 5 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 } segments end end |
.define_multiple(type, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rbbt/document/annotation.rb', line 22 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(list) if Hash === doc_segments doc_segments.each_with_index do |segments,i| next if segments.nil? document = list[i] Segment.align(document, segments) unless segments.nil? || 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 } segments end end end |