Sha256: a29ebfc885a679fb89a65a61e02a39d2134782fd8ea66bbf8a7a24ce2a602764
Contents?: true
Size: 1.25 KB
Versions: 6
Compression:
Stored size: 1.25 KB
Contents
require 'rbbt-util' require 'rbbt/entity' module DocID extend Entity self.annotation :corpus class << self attr_accessor :default_corpus end def id self end def corpus annotation_values[:corpus] || DocID.default_corpus end property :to do |type| namespace, code = self.split(":") DocID.setup([namespace, code, "title"] * ":", :corpus => corpus) end property :document => :both do if Array === self namespace, id, type = nil, nil, nil docs = self.collect do |docid| self.corpus[docid] end Document.setup(docs, :corpus => corpus) else text = self.corpus[self] namespace, id, type = self.split(":") Document.setup(text, :namespace => namespace, :code => id, :type => type, :corpus => corpus) end end end module Document extend Entity self.annotation :namespace, :code, :type, :corpus property :docid do |corpus=nil| digest = Misc.digest(self) corpus = self.corpus if corpus.nil? DocID.setup([namespace, code, type, digest] * ":", :corpus => corpus) end property :to do |type| docid.to(type).document end alias id docid end #class String # def docid # digest = Misc.digest(self) # ["STRING", digest, nil, nil] * ":" # end #end
Version data entries
6 entries across 6 versions & 1 rubygems