module YARD::Server::DocServerHelper
A module that is mixed into {Templates::Template} in order to customize certain template methods.
Public Instance Methods
@example The base path for a library 'foo'
base_path('docs') # => 'docs/foo'
@param [String] path the path prefix for a base path URI @return [String]
the base URI for a library with an extra path
prefix
# File lib/yard/server/doc_server_helper.rb, line 67 def base_path(path) libname = router.request.version_supplied ? @library.to_s : @library.name path + (@single_library ? '' : "/#{libname}") end
@return [Router] convenience method for accessing the router
# File lib/yard/server/doc_server_helper.rb, line 73 def router; @adapter.router end
Modifies {Templates::Helpers::HtmlHelper#url_for} to return a URL instead of a disk location. @param (see YARD::Templates::Helpers::HtmlHelper#url_for) @return (see YARD::Templates::Helpers::HtmlHelper#url_for)
# File lib/yard/server/doc_server_helper.rb, line 10 def url_for(obj, anchor = nil, relative = false) return '' if obj.nil? return url_for_index if obj == '_index.html' return "/#{obj}" if String === obj url = super(obj, anchor, false) return unless url File.join('', base_path(router.docs_prefix), url) end
Modifies {Templates::Helpers::HtmlHelper#url_for_file} to return a URL instead of a disk location. @param (see YARD::Templates::Helpers::HtmlHelper#url_for_file) @return (see YARD::Templates::Helpers::HtmlHelper#url_for_file)
# File lib/yard/server/doc_server_helper.rb, line 23 def url_for_file(filename, anchor = nil) if filename.is_a?(CodeObjects::ExtraFileObject) filename = filename.filename end "/#{base_path(router.docs_prefix)}/file/" + filename.sub(%r{^#{@library.source_path.to_s}/}, '') + (anchor ? "##{anchor}" : "") end
Returns the frames URL for the page @return (see YARD::Templates::Helpers::HtmlHelper#url_for_frameset)
# File lib/yard/server/doc_server_helper.rb, line 41 def url_for_frameset url = options.file ? url_for_file(options.file) : url_for(object) url = url.gsub(%r{^/#{base_path(router.docs_prefix)}/}, '') File.join('', base_path(router.docs_prefix), "frames", url) end
Returns the URL for the alphabetic index page @return (see YARD::Templates::Helpers::HtmlHelper#url_for_index)
# File lib/yard/server/doc_server_helper.rb, line 59 def url_for_index File.join('', base_path(router.docs_prefix), 'index') end
Modifies {Templates::Helpers::HtmlHelper#url_for_list} to return a URL based on the list prefix instead of a HTML filename. @param (see YARD::Templates::Helpers::HtmlHelper#url_for_list) @return (see YARD::Templates::Helpers::HtmlHelper#url_for_list)
# File lib/yard/server/doc_server_helper.rb, line 35 def url_for_list(type) File.join('', base_path(router.list_prefix), type.to_s) end
Returns the main URL, first checking a readme and then linking to the index @return (see YARD::Templates::Helpers::HtmlHelper#url_for_main)
# File lib/yard/server/doc_server_helper.rb, line 49 def url_for_main if options.frames && !options.command.path.empty? File.join('', base_path(router.docs_prefix), options.command.path) else options.readme ? url_for_file(options.readme) : url_for_index end end