Sha256: e1783077f6541fb62af0b54b85c53e42fcfe46fe33b63f355a199bcff2929219

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Examples
    module Standard
      module V1
        class RequestParams
          module Utils
            module HTTP
              module Request
                ##
                # TODO: Specs.
                #
                class ParsePath < ConvenientService::Command
                  attr_reader :http_string

                  def initialize(http_string:)
                    @http_string = http_string
                  end

                  ##
                  # - https://stackoverflow.com/a/17599778/12201472
                  # - https://github.com/ruby/webrick/blob/v1.7.0/lib/webrick/httprequest.rb
                  #
                  def call
                    webrick_request = ::WEBrick::HTTPRequest.new(::WEBrick::Config::HTTP)

                    webrick_request.parse(::StringIO.new(http_string))

                    webrick_request.path
                  rescue ::WEBrick::HTTPStatus::BadRequest
                    nil
                  end
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
convenient_service-0.17.0 lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb
convenient_service-0.16.0 lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb
convenient_service-0.15.0 lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb
convenient_service-0.14.0 lib/convenient_service/examples/standard/v1/request_params/utils/http/request/parse_path.rb