Sha256: 2c791aa784981325bbceed04dca564cf3ab6f54455ca3edede771787cca83713

Contents?: true

Size: 730 Bytes

Versions: 10

Compression:

Stored size: 730 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 = ApiDefinition.instance.global_info.documentation_url
          endpoint.gsub(/\/index\.html$/i, '/') if endpoint
        end
      end
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
praxis-2.0.pre.9 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.8 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.7 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.6 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.5 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.4 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.3 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.2 lib/praxis/docs/link_builder.rb
praxis-2.0.pre.1 lib/praxis/docs/link_builder.rb
praxis-0.21 lib/praxis/docs/link_builder.rb