lib/rbbt/association/item.rb in rbbt-util-5.14.8 vs lib/rbbt/association/item.rb in rbbt-util-5.14.9

- old
+ new

@@ -5,10 +5,14 @@ annotation :knowledge_base annotation :database annotation :reverse + property :namespace => :both do + knowledge_base.namespace + end + property :part => :array2single do self.clean_annotations.collect{|p| p.partition("~") } end property :target => :array2single do @@ -17,15 +21,15 @@ property :source => :array2single do self.clean_annotations.collect{|p| p[/[^~]+/] } end - property :target_type => :single do - reverse ? knowledge_base.source(database) : knowledge_base.target(database) + property :target_type => :both do + type = reverse ? knowledge_base.source(database) : knowledge_base.target(database) end - property :source_type => :single do + property :source_type => :both do reverse ? knowledge_base.target(database) : knowledge_base.source(database) end property :target_entity => :array2single do type = reverse ? knowledge_base.source(database) : knowledge_base.target(database) @@ -40,11 +44,16 @@ 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)} end + property :info_fields => :both do + knowledge_base.index_fields(database) + end + property :info => :array2single do - fields = knowledge_base.index_fields(database) + fields = self.info_fields + return [{}] * self.length if fields.nil? or fields.empty? value = self.value value.collect{|v| Hash[*fields.zip(v).flatten]