Sha256: cc675ec08faa5807e3aaa4b0c08aa927b86029ae57f816cd74aa7189befd8feb

Contents?: true

Size: 751 Bytes

Versions: 2

Compression:

Stored size: 751 Bytes

Contents

module Praxis
  module Docs
    # Generates links into the generated doc browser.
    class LinkBuilder
      include Singleton

      # Generates a link based on a request gone wrong.
      # @return [String, nil] The doc browser link.
      def for_request(req)
        build_link req.version, 'controller', req.action.resource_definition.id, req.action.name
      end

      private

      def build_link(*segments)
        if endpoint
          endpoint + '#' + segments.join('/')
        end
      end

      def endpoint
        @endpoint ||= begin
          endpoint = Application.current_instance.api_definition.global_info.documentation_url
          endpoint.gsub(/\/index\.html$/i, '/') if endpoint
        end
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
praxis-0.22.pre.2 lib/praxis/docs/link_builder.rb
praxis-0.22.pre.1 lib/praxis/docs/link_builder.rb