class YARD::Server::DocServerSerializer

A custom {Serializers::Base serializer} which returns resource URLs instead of static relative paths to files on disk.

Public Class Methods

new(command = nil) click to toggle source
# File lib/yard/server/doc_server_serializer.rb, line 10
def initialize(command = nil)
  super(:basepath => '', :extension => '')
end

Public Instance Methods

serialized_path(object) click to toggle source
# File lib/yard/server/doc_server_serializer.rb, line 14
def serialized_path(object)
  case object
  when CodeObjects::RootObject
    "toplevel"
  when CodeObjects::ExtendedMethodObject
    name = object.name.to_s
    serialized_path(object.namespace) + ':' + urlencode(object.name.to_s)
  when CodeObjects::MethodObject
    serialized_path(object.namespace) +
      (object.scope == :instance ? ":" : ".") + urlencode(object.name.to_s)
  when CodeObjects::ConstantObject, CodeObjects::ClassVariableObject
    serialized_path(object.namespace) + "##{object.name}-#{object.type}"
  when CodeObjects::ExtraFileObject
    super(object).gsub(/^file\./, 'file/')
  else
    super(object)
  end
end

Private Instance Methods

urlencode(name) click to toggle source
# File lib/yard/server/doc_server_serializer.rb, line 35
def urlencode(name)
  if name.respond_to?(:force_encoding)
    name = name.dup.force_encoding('binary')
  end
  escape(name)
end