osem-fcy/app/serializers/event_serializer.rb

42 lines
865 B
Ruby
Raw Normal View History

2013-07-08 10:07:12 +02:00
class EventSerializer < ActiveModel::Serializer
include ActionView::Helpers::TextHelper
2014-06-24 12:14:53 +03:00
attributes :guid, :title, :length, :date, :language, :abstract, :speaker_ids, :type, :room, :track
2013-07-08 10:07:12 +02:00
def date
t = object.start_time
t.blank? ? '' : %{ #{l t, format: :short}#{t.formatted_offset(false)} }
2013-07-08 10:07:12 +02:00
end
def speaker_ids
2014-06-24 12:14:53 +03:00
speakers = object.event_users.select { |i| i.event_role == 'speaker' }
speakers.map { |i| i.user.id }
2013-07-08 10:07:12 +02:00
end
def type
object.event_type.try(:title)
end
def room
object.room.try(:guid)
end
def track
object.track.try(:guid)
end
def abstract
# This should never happen
if object.abstract.blank?
nil
else
2014-06-24 12:14:53 +03:00
simple_format(object.abstract).gsub('\n', '')
2013-07-08 10:07:12 +02:00
end
end
# FIXME: duplicated logic from Event#as_json
def length
object.event_type.try(:length) || 25
end
end