Class: FakeRest::ProfileLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/fakerest/profileloader.rb

Constant Summary collapse

@@options =
{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.upload_file(file_params) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/fakerest/profileloader.rb', line 59

def self.upload_file(file_params)
  file_name =Time.now.strftime("%Y%m%d%H%M%S") + "_" +  file_params[:filename]
  File.open("#{@@options[:uploads]}/" + file_name, "w") do |f|
    f.write(file_params[:tempfile].read)
  end
  [file_name, file_params[:type]]
end

Instance Method Details

#configure_requests(request_mappings) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/fakerest/profileloader.rb', line 42

def configure_requests(request_mappings)
  request_mappings.each do |request_mapping|
    block = Proc.new {
      request_file_path, request_file_type = ProfileLoader.upload_file(params['file']) if(params[:file] != nil)

      content_type request_mapping.content_type
      status request_mapping.status_code
      request_body = UserRequests.generate_request_body(params, request)

      UserRequests.add  UserRequest.new(request.request_method, request.url, request_body, request_mapping.status_code, params, request_file_path, request_file_type)
      erb request_mapping.response_file.to_sym, params
    }

    Sinatra::Base.send request_mapping.method, request_mapping.path, &block
  end
end

#load(profile_file, options) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/fakerest/profileloader.rb', line 20

def load(profile_file, options)
  @@options = options
  request_mappings = []
  profile_file_path = profile_file

  defns = YAML::load_documents(File.open(profile_file_path))
  defns.each do |doc|
    method = doc['method']
    path = doc['path']

    response = doc['response']
    response_file = response['content_file']
    content_type = response['content_type']
    status_code = response['status_code']

    request_mappings << RequestMapping.new(method, path, status_code, response_file, content_type)
  end

  configure_requests(request_mappings)
end