You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/app/serializers/asciicast_serializer.rb

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