PATH: //opt/alt/ruby27/share/gems/gems/rack-3.0.8/lib/rack
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📁 auth/
X
📄 body_proxy.rb
↓
X
📄 builder.rb
↓
X
📄 cascade.rb
↓
X
📄 chunked.rb
↓
X
📄 common_logger.rb
↓
X
📄 conditional_get.rb
↓
X
📄 config.rb
↓
X
📄 constants.rb
↓
X
📄 content_length.rb
↓
X
📄 content_type.rb
↓
X
📄 deflater.rb
↓
X
📄 directory.rb
↓
X
📄 etag.rb
↓
X
📄 events.rb
↓
X
📄 file.rb
↓
X
📄 files.rb
↓
X
📄 head.rb
↓
X
📄 headers.rb
↓
X
📄 lint.rb
↓
X
📄 lock.rb
↓
X
📄 logger.rb
↓
X
📄 media_type.rb
↓
X
📄 method_override.rb
↓
X
📄 mime.rb
↓
X
📄 mock.rb
↓
X
📄 mock_request.rb
↓
X
📄 mock_response.rb
↓
X
📁 multipart/
X
📄 multipart.rb
↓
X
📄 null_logger.rb
↓
X
📄 query_parser.rb
↓
X
📄 recursive.rb
↓
X
📄 reloader.rb
↓
X
📄 request.rb
↓
X
📄 response.rb
↓
X
📄 rewindable_input.rb
↓
X
📄 runtime.rb
↓
X
📄 sendfile.rb
↓
X
📄 show_exceptions.rb
↓
X
📄 show_status.rb
↓
X
📄 static.rb
↓
X
📄 tempfile_reaper.rb
↓
X
📄 urlmap.rb
↓
X
📄 utils.rb
↓
X
📄 version.rb
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: mock_response.rb
# frozen_string_literal: true require 'cgi/cookie' require 'time' require_relative 'response' module Rack # Rack::MockResponse provides useful helpers for testing your apps. # Usually, you don't create the MockResponse on your own, but use # MockRequest. class MockResponse < Rack::Response class << self alias [] new end # Headers attr_reader :original_headers, :cookies # Errors attr_accessor :errors def initialize(status, headers, body, errors = nil) @original_headers = headers if errors @errors = errors.string if errors.respond_to?(:string) else @errors = "" end super(body, status, headers) @cookies = parse_cookies_from_header buffered_body! end def =~(other) body =~ other end def match(other) body.match other end def body return @buffered_body if defined?(@buffered_body) # FIXME: apparently users of MockResponse expect the return value of # MockResponse#body to be a string. However, the real response object # returns the body as a list. # # See spec_showstatus.rb: # # should "not replace existing messages" do # ... # res.body.should == "foo!" # end buffer = @buffered_body = String.new @body.each do |chunk| buffer << chunk end return buffer end def empty? [201, 204, 304].include? status end def cookie(name) cookies.fetch(name, nil) end private def parse_cookies_from_header cookies = Hash.new if headers.has_key? 'set-cookie' set_cookie_header = headers.fetch('set-cookie') Array(set_cookie_header).each do |header_value| header_value.split("\n").each do |cookie| cookie_name, cookie_filling = cookie.split('=', 2) cookie_attributes = identify_cookie_attributes cookie_filling parsed_cookie = CGI::Cookie.new( 'name' => cookie_name.strip, 'value' => cookie_attributes.fetch('value'), 'path' => cookie_attributes.fetch('path', nil), 'domain' => cookie_attributes.fetch('domain', nil), 'expires' => cookie_attributes.fetch('expires', nil), 'secure' => cookie_attributes.fetch('secure', false) ) cookies.store(cookie_name, parsed_cookie) end end end cookies end def identify_cookie_attributes(cookie_filling) cookie_bits = cookie_filling.split(';') cookie_attributes = Hash.new cookie_attributes.store('value', cookie_bits[0].strip) cookie_bits.drop(1).each do |bit| if bit.include? '=' cookie_attribute, attribute_value = bit.split('=', 2) cookie_attributes.store(cookie_attribute.strip.downcase, attribute_value.strip) end if bit.include? 'secure' cookie_attributes.store('secure', true) end end if cookie_attributes.key? 'max-age' cookie_attributes.store('expires', Time.now + cookie_attributes['max-age'].to_i) elsif cookie_attributes.key? 'expires' cookie_attributes.store('expires', Time.httpdate(cookie_attributes['expires'])) end cookie_attributes end end end
SIMPAN PERUBAHAN