class Pretender::Rails::Server
Constants
- Stub
Attributes
session[RW]
Public Instance Methods
inject(body)
click to toggle source
# File lib/pretender/rails/server.rb, line 11 def inject(body) unless stubs.empty? head_pos = body.index('</head>') body.insert(head_pos, scripts) if head_pos end body end
shutdown(page)
click to toggle source
# File lib/pretender/rails/server.rb, line 19 def shutdown(page) stubs.clear page.driver.execute_script('typeof(server) !== "undefined" && server.shutdown();') rescue Capybara::NotSupportedByDriverError => e end
stub(method, route, response)
click to toggle source
# File lib/pretender/rails/server.rb, line 25 def stub(method, route, response) stub = Stub.new(method, route, response) stubs.unshift stub stub end
Private Instance Methods
dependencies_script()
click to toggle source
# File lib/pretender/rails/server.rb, line 51 def dependencies_script [javascript_include_tag('fake_xml_http_request.js'), javascript_include_tag('route-recognizer.js'), javascript_include_tag('pretender.js')].join("\n") end
javascript_include_tag(url)
click to toggle source
# File lib/pretender/rails/server.rb, line 57 def javascript_include_tag(url) "<script src=\"/assets/#{url}\"></script>" end
load_script(path)
click to toggle source
# File lib/pretender/rails/server.rb, line 43 def load_script(path) open(path).read end
routes()
click to toggle source
# File lib/pretender/rails/server.rb, line 37 def routes stubs.map do |stub| "this.#{stub.method}('#{stub.route}', function(request) { return #{stub.response.to_json}; });" end.join("\n") end
scripts()
click to toggle source
# File lib/pretender/rails/server.rb, line 47 def scripts [dependencies_script, server_script].join("\n") end
server_script()
click to toggle source
# File lib/pretender/rails/server.rb, line 61 def server_script <<-JS <script> var server = new Pretender(function(){ #{routes} this.get('/*any', this.passthrough); this.post('/*any', this.passthrough); this.put('/*any', this.passthrough); this.delete('/*any', this.passthrough); }); </script> JS end
stubs()
click to toggle source
# File lib/pretender/rails/server.rb, line 33 def stubs @_stubs ||= [] end