class Postman::Request
Public Class Methods
new(params)
click to toggle source
# File lib/postman-ruby.rb, line 64 def initialize(params) # @name # @description # @method # @url # @header # @body # @environment params.each do |k,v| instance_variable_set("@#{k}", v) self.class.send(:attr_reader, k.to_sym) end @method = @method.downcase.to_sym @url = URL.new(@url) @env = @environment if @header.nil? @header = {} else header = {} @header.each do |h| header[h['key']] = apply_env(h['value']) end @header = header end end
Public Instance Methods
execute()
click to toggle source
# File lib/postman-ruby.rb, line 98 def execute if @method == :get new_request(:get).execute else params = {} unless @body.nil? && @body.empty? if @body['mode'] == 'raw' params[:payload] = @body['raw'] elsif @body['mode'] == 'formdata' f = {} @body['formdata'].each do |d| if d['enabled'] if d['type'] == 'file' params[:multipart] = true end f[d['key']] = d['value'] || "" end end params[:payload] = f end end new_request(:post, params).execute end end
reset_env(env)
click to toggle source
# File lib/postman-ruby.rb, line 94 def reset_env(env) @env = env.clone end
set_env(env)
click to toggle source
# File lib/postman-ruby.rb, line 90 def set_env(env) env.each { |k, v| @env[k] = v } end
Private Instance Methods
apply_env(str)
click to toggle source
# File lib/postman-ruby.rb, line 126 def apply_env(str) if !@env.nil? vars = str.scan(/\{{2}[A-Za-z_\-.]+\}{2}/) vars.each do |v| val = @env[v[2..-3]] raise "Request env var is missing: #{v}" if val.nil? str = str.gsub(v, val) end end str end
new_request(method, params={})
click to toggle source
# File lib/postman-ruby.rb, line 145 def new_request(method, params={}) params[:method] = method params[:url] = apply_env(@url.to_s) params[:headers] = @header r = RestClient::Request.new(params) RequestDecorator.new(r) end