45 lines
807 B
Ruby
45 lines
807 B
Ruby
class AsciicastSerializer < ActiveModel::Serializer
|
|
self.root = false
|
|
|
|
attributes :id, :url, :snapshot, :width, :height
|
|
|
|
delegate :private?, :title, :ready?, to: :object
|
|
|
|
def id
|
|
object.to_param
|
|
end
|
|
|
|
def url
|
|
if v0_url?
|
|
object.stdout_frames_url
|
|
else
|
|
if url = object.data.url
|
|
if url.starts_with?("/")
|
|
asciicast_path(object, format: :json) # download URL for local carrierwave store
|
|
else
|
|
url # direct signed S3 URL (because XHR CORS redirect doesn't work under Safari)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def author_display_name
|
|
object.user.display_name
|
|
end
|
|
|
|
def author_url
|
|
object.user.url
|
|
end
|
|
|
|
def author_avatar_url
|
|
object.user.avatar_url(object.user)
|
|
end
|
|
|
|
private
|
|
|
|
def v0_url?
|
|
!!@options[:v0]
|
|
end
|
|
|
|
end
|