lib/yard/server/doc_server_serializer.rb in yard-0.8.7.2 vs lib/yard/server/doc_server_serializer.rb in yard-0.8.7.3
- old
+ new
@@ -14,20 +14,30 @@
def serialized_path(object)
case object
when CodeObjects::RootObject
"toplevel"
when CodeObjects::ExtendedMethodObject
- serialized_path(object.namespace) + ':' + escape(object.name.to_s)
+ name = object.name.to_s
+ serialized_path(object.namespace) + ':' + urlencode(object.name.to_s)
when CodeObjects::MethodObject
serialized_path(object.namespace) +
- (object.scope == :instance ? ":" : ".") + escape(object.name.to_s)
+ (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/')
+ super(object).gsub(/^file\./, 'file/')
else
super(object)
end
+ end
+
+ private
+
+ def urlencode(name)
+ if name.respond_to?(:force_encoding)
+ name = name.dup.force_encoding('binary')
+ end
+ escape(name)
end
end
end
end