51 lines
1.0 KiB
Ruby
51 lines
1.0 KiB
Ruby
module Mozo::WaiterBaseSerializer
|
|
extend ActiveSupport::Concern
|
|
include JSONAPI::Serializer
|
|
included do
|
|
class_attribute :related_link_for_attributes
|
|
timestamp_attribute :created_at
|
|
timestamp_attribute :updated_at
|
|
end
|
|
|
|
def base_url
|
|
nil
|
|
end
|
|
|
|
def format_name(attribute_name)
|
|
attribute_name.to_s.dasherize
|
|
end
|
|
|
|
def unformat_name(attribute_name)
|
|
attribute_name.to_s.underscore
|
|
end
|
|
|
|
#alias_method :default_relationship_related_link, :relationship_related_link
|
|
def relationship_related_link(attribute_name)
|
|
#super if related_link_for_attributes.include?(attribute_name)
|
|
super
|
|
end
|
|
|
|
|
|
def relationship_self_link(attribute_name)
|
|
end
|
|
|
|
module ClassMethods
|
|
def attributes(*attrs)
|
|
attrs.each do |attr|
|
|
attribute attr
|
|
end
|
|
end
|
|
|
|
def timestamp_attribute(attr)
|
|
attribute attr do
|
|
return unless timestamp = object.public_send(attr)
|
|
timestamp.iso8601
|
|
end
|
|
end
|
|
|
|
def related_link_for(*attributes)
|
|
self.related_link_for_attributes = attributes
|
|
end
|
|
end
|
|
end
|