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]