Skip to content

Commit 2c4b355

Browse files
committed
Restore URI dependency for request loader
1 parent b5e8c80 commit 2c4b355

2 files changed

Lines changed: 59 additions & 0 deletions

File tree

lib/transloadit.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require "json"
44
require "openssl"
55
require "cgi"
6+
require "uri"
67

78
#
89
# Implements the Transloadit REST API in Ruby. Check the {file:README.md README}

test/unit/transloadit/test_request.rb

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
require "test_helper"
22
require "multi_json"
3+
require "rbconfig"
4+
require "tmpdir"
35

46
describe Transloadit::Request do
57
it "must allow initialization" do
@@ -76,6 +78,62 @@
7678
end
7779
end
7880
end
81+
82+
it "loads request when URI was not previously required" do
83+
lib_path = File.expand_path("../../../lib", __dir__)
84+
85+
Dir.mktmpdir do |stub_dir|
86+
File.write(File.join(stub_dir, "rest-client.rb"), <<~RUBY)
87+
module RestClient
88+
class Response; end
89+
90+
class Resource
91+
def initialize(*); end
92+
def [](*); self; end
93+
def get(*); Response.new; end
94+
def post(*); Response.new; end
95+
def put(*); Response.new; end
96+
def delete(*); Response.new; end
97+
end
98+
99+
module Exceptions
100+
class OpenTimeout < StandardError; end
101+
end
102+
end
103+
RUBY
104+
105+
File.write(File.join(stub_dir, "multi_json.rb"), <<~RUBY)
106+
require "json"
107+
108+
module MultiJson
109+
def self.dump(value)
110+
JSON.dump(value)
111+
end
112+
113+
def self.load(json)
114+
JSON.parse(json)
115+
end
116+
end
117+
RUBY
118+
119+
script = <<~RUBY
120+
$LOAD_PATH.unshift #{stub_dir.inspect}
121+
$LOAD_PATH.unshift #{lib_path.inspect}
122+
123+
begin
124+
require "transloadit/request"
125+
Transloadit::Request.new("/")
126+
rescue StandardError => e
127+
warn e.full_message
128+
exit 1
129+
end
130+
RUBY
131+
132+
stdout, stderr, status = Open3.capture3(RbConfig.ruby, "-e", script)
133+
error_output = stderr.empty? ? stdout : stderr
134+
assert status.success?, "Expected transloadit/request to load without NameError, got: #{error_output}"
135+
end
136+
end
79137
end
80138

81139
describe "signature parity" do

0 commit comments

Comments
 (0)