Module: SReq
Instance Method Summary collapse
-
#create_url(base, added, path_params = []) ⇒ Object
Example: >> SReq::create_url(“cardanoscan.io/”, “/transaction/{id}/”, [“name”, “age”]) => #GET(url, data = {}) ⇒ Object
- #POST(url, data = {}) ⇒ Object
- #test ⇒ Object
Instance Method Details
#create_url(base, added, path_params = []) ⇒ Object
Example: >> SReq::create_url(“cardanoscan.io/”, “/transaction/{id}/”, [“name”, “age”])
>
11 12 13 14 15 16 17 18 19
# File 'lib/sreq.rb', line 11 def create_url(base, added, path_params = []) url = trim(base, "/") + "/" + trim(added, "/") return url if path_params.empty? url = url + "?" path_params.each do |name| url += "#{name}={{#{name}}}&" end trim(url, "&") end
#GET(url, data = {}) ⇒ Object
21 22 23 24 25 26
# File 'lib/sreq.rb', line 21 def GET(url, data = {}) url = fill_url_data(url, data) puts "making request: #{url}" uri = URI(url) Net::HTTP.get_response(uri) end
#POST(url, data = {}) ⇒ Object
28 29 30 31 32 33
# File 'lib/sreq.rb', line 28 def POST(url, data = {}) url = fill_url_data(url, data) puts "making request: #{url} with data: #{data}" uri = URI(url) Net::HTTP.post_form(uri, data) end
#test ⇒ Object
35 36 37 38 39 40 41 42 43 44 45
# File 'lib/sreq.rb', line 35 def test base_url = "https://cardanoscan.io/".freeze generated_url = SReq::create_url(base_url, "transaction/{{id}}", ["name", "age"]).freeze expected_url = "https://cardanoscan.io/transaction/{{id}}?name={{name}}&age={{age}}" raise "Output: #{generated_url}, Expected: #{expected_url}" unless generated_url == expected_url data = {"id" => "0x123", "age" => 23, "name" => "Oswald"} filled_url = fill_url_data(generated_url, data) expected_url = "https://cardanoscan.io/transaction/#{data["id"]}?name=#{data["name"]}&age=#{data["age"]}" raise "Output: #{filled_url}, Expected: #{expected_url}" unless filled_url == expected_url puts "Test succeeded generating: #{expected_url}" end