class HttpMockServer

Main app class

Constants

CORS_HEADERS
METHODS
MIME_JSON

Public Instance Methods

interpolate(input) click to toggle source
# File lib/http-mock-server.rb, line 113
def interpolate(input)
  vars = input.to_s.scan(/\#{(.*?)}/).flatten.map { |t| eval(t) }
  input.to_s.gsub(/\#{(.*?)}/, '%s') % vars
end
log(code, method, path) click to toggle source
# File lib/http-mock-server.rb, line 98
def log(code, method, path)
  print "#{Time.now.strftime('%F %T')} - [#{code}] #{method} #{path}\n"
  return unless $config['config']['verbose']
  if MIME_JSON.include? env['CONTENT_TYPE']
    request.body.rewind
    data = JSON.parse request.body.read
    print "  PARAMS_JSON: #{data}\n" unless data.empty?
  else
    pars = params.dup
    pars.delete 'captures'
    pars.delete 'splat'
    print "  PARAMS_DATA: #{pars}\n" if pars.any?
  end
end
reload_route(route_id) click to toggle source
# File lib/http-mock-server.rb, line 118
def reload_route(route_id)
  config = YAML.safe_load File.read($config_file) || {}
  return config['not_found'] || {} if route_id < 0
  return {} if !config['routes'] || !config['routes'][route_id]
  config['routes'][route_id]
end
traverse!(node) click to toggle source
# File lib/http-mock-server.rb, line 125
def traverse!(node)
  if node.is_a?(Hash)
    node.each do |k, v|
      traverse_node(node, k, v)
    end
  elsif node.is_a?(Array)
    node.each_with_index do |v, i|
      traverse_node(node, i, v)
    end
  end
end
traverse_node(node, k, v) click to toggle source
# File lib/http-mock-server.rb, line 137
def traverse_node(node, k, v)
  if v.is_a?(Hash) || v.is_a?(Array)
    traverse! v
  elsif v
    node[k] = interpolate v
  end
end