25 lines
650 B
Ruby
25 lines
650 B
Ruby
|
module ActiveText
|
||
|
module Attachable
|
||
|
class << self
|
||
|
def from_node(node)
|
||
|
if attachable = attachable_from_sgid(node["sgid"])
|
||
|
attachable
|
||
|
elsif attachable = ActiveText::Attachables::ContentAttachment.from_node(node)
|
||
|
attachable
|
||
|
elsif attachable = ActiveText::Attachables::RemoteImage.from_node(node)
|
||
|
attachable
|
||
|
else
|
||
|
ActiveText::Attachables::MissingAttachable
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
def attachable_from_sgid(sgid)
|
||
|
::Attachable.from_attachable_sgid(sgid)
|
||
|
rescue ActiveRecord::RecordNotFound
|
||
|
nil
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|