end
cooked = raw + cooked
end
+
+ def link_to_if_orvos_object(attrvalue, attr, object)
+ if (resource_class = OrvosBase::resource_class_for_uuid(attrvalue, attr, object))
+ link_to "#{resource_class.to_s} #{attrvalue}", { controller: resource_class.to_s.camelize(:lower).pluralize, action: 'show', id: attrvalue }
+ else
+ attrvalue
+ end
+ end
end
end
def self.resource_class_for_uuid(uuid, attr_name=nil, object=nil)
- resource_class = nil
+ unless uuid.is_a? String
+ return nil
+ end
if uuid.match /^[0-9a-f]{32}(\+[^,]+)*(,[0-9a-f]{32}(\+[^,]+)*)*$/
return 'orvos#collection'
end
+ resource_class = nil
uuid.match /^[0-9a-z]{5}-([0-9a-z]{5})-[0-9a-z]{15}$/ do |re|
resource_class ||= $orvos_api_client.
kind_class(self.uuid_infix_object_kind[re[1]])
<% elsif attrvalue.is_a? String or attrvalue.respond_to? :to_s %>
<tr>
<td><%= attr %></td>
- <% if attrvalue.is_a? String and (resource_class = OrvosBase::resource_class_for_uuid(attrvalue, attr, @object)) %>
- <td><%= link_to "#{resource_class.to_s} #{attrvalue}", { controller: resource_class.to_s.camelize(:lower).pluralize, action: 'show', id: attrvalue } %></td>
- <% else %>
- <td><%= attrvalue %></td>
- <% end %>
+ <td><%= link_to_if_orvos_object attrvalue, attr, @object %></td>
</tr>
<% end; end %>
</tbody>