1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
|
# File 'lib/activefacts/metamodel/extensions.rb', line 1525
def verbalise(context = nil)
reading = fact_type.preferred_reading
reading_roles = reading.role_sequence.all_role_ref.sort_by{|rr| rr.ordinal}.map{|rr| rr.role }
role_values_in_reading_order = all_role_value.sort_by{|rv| reading_roles.index(rv.role) }
instance_verbalisations = role_values_in_reading_order.map do |rv|
if rv.instance.value
v = rv.instance.verbalise
else
if (c = rv.instance.object_type).is_a?(EntityType)
if !c.preferred_identifier.role_sequence.all_role_ref.detect{|rr| rr.role.fact_type == fact_type}
v = rv.instance.verbalise
end
end
end
next nil unless v
v.to_s.sub(/(#{rv.instance.object_type.name}|\S*)\s/,'')
end
reading.expand([], false, instance_verbalisations)
end
|