class ResponseMate::Exporters::Postman::Collection

Handles exporting to postman format Example output www.getpostman.com/collections/dbc0521911e45471ff4a

Attributes

manifest[RW]
out[RW]

Public Class Methods

new(manifest) click to toggle source
# File lib/response_mate/exporters/postman/collection.rb, line 8
def initialize(manifest)
  @manifest = manifest
  @out = {}
end

Public Instance Methods

export() click to toggle source
# File lib/response_mate/exporters/postman/collection.rb, line 13
def export
  build_structure
  build_requests
  out
end

Private Instance Methods

build_request(request) click to toggle source
# File lib/response_mate/exporters/postman/collection.rb, line 41
def build_request(request)
  {
    id: SecureRandom.uuid,
    collectionId: out[:id],
    data: [],
    description: '',
    method: request[:verb],
    name: request.key,
    url: request[:url],
    version: 2,
    responses: [],
    dataMode: 'params',
    headers: request[:headers].map { |k, v| "#{k}: #{v}" }.join("\n")
  }
end
build_requests() click to toggle source
# File lib/response_mate/exporters/postman/collection.rb, line 32
def build_requests
  manifest.requests.each do |request|
    out_req = build_request(request)

    out[:order] << out_req[:id]
    out[:requests] << out_req
  end
end
build_structure() click to toggle source
# File lib/response_mate/exporters/postman/collection.rb, line 21
def build_structure
  out.merge!(
    id: SecureRandom.uuid,
    name: manifest.name,
    description: manifest.description,
    requests: [],
    order: [],
    timestamp: Time.now.to_i
  )
end