lib/rbbt/association/item.rb in rbbt-util-5.14.35 vs lib/rbbt/association/item.rb in rbbt-util-5.14.36

- old
+ new

@@ -52,27 +52,31 @@ property :source_type => :both do reverse ? knowledge_base.target(database) : knowledge_base.source(database) end + property :undirected => :both do + knowledge_base.undirected(database) + end + property :target_entity => :array2single do type = reverse ? knowledge_base.source(database) : knowledge_base.target(database) knowledge_base.annotate self.target, type, database #if self.target.any? end - property :undirected => :both do - knowledge_base.undirected(database) - end - property :source_entity => :array2single do type = reverse ? knowledge_base.target(database) : knowledge_base.source(database) - knowledge_base.annotate self.source, type #if self.source.any? + knowledge_base.annotate self.source, type, database #if self.source.any? end + property :index => :both do |database| + @index ||= knowledge_base.get_index(database) + end property :value => :array2single do - value = (reverse ? knowledge_base.get_index(database).reverse : knowledge_base.get_index(database)).chunked_values_at self - value.collect{|v| NamedArray.setup(v, knowledge_base.get_index(database).fields)} + index = index(database) + value = (reverse ? index.reverse : index).chunked_values_at self + value.collect{|v| NamedArray.setup(v, index.fields)} end property :info_fields => :both do knowledge_base.index_fields(database) end @@ -124,10 +128,10 @@ if block_given? matches[s] ||= Hash.new{nil} value = block.call p matches[s][t] = value unless value.nil? or (mv = matches[s][t] and value > mv) else - matches[s] ||= Hash.new{true} + matches[s] ||= Hash.new{false} matches[s][t] ||= true end end sources.uniq!