Sha256: f53ece75cbd36c186bdf3d8eda4532001f0deae058f8424654546c77fdf81946
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 KB
Contents
require 'uri' module Useless module Doc # +Doc::Router+ determines the doc URL for an API and vice versa via # the #doc_for_api and #api_for_doc methods, respectively. # module Router def self.default @default ||= Doc::Router::Default.new end def doc_for_api(url) end def api_for_doc(url) end class Default include Doc::Router def initialize(*supported_urls) @supported_urls = supported_urls end def doc_for_api(url) return nil unless supported_url?(url) uri = URI(url) host = uri.host new_host = host. split('.'). insert(-3, 'doc'). join('.') "#{uri.scheme}://#{new_host}#{uri.path}" end def api_for_doc(url) uri = URI(url) host = uri.host parts = host.split('.') parts.slice!(-3) if parts[-3] == 'doc' new_host = parts.join('.') new_url = "#{uri.scheme}://#{new_host}#{uri.path}" new_url if supported_url?(new_url) end private def supported_url?(url) if @supported_urls.nil? or @supported_urls.empty? true else @supported_urls.any? do |supported_url| url =~ Regexp.new(supported_url) end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
useless-doc-0.3.1 | lib/useless/doc/router.rb |
useless-doc-0.3.0 | lib/useless/doc/router.rb |