webstub 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,30 +32,44 @@ module WebStub
32
32
  registry.reset
33
33
  end
34
34
 
35
+ def initWithRequest(request, cachedResponse:response, client: client)
36
+ if super
37
+ @stub = nil
38
+ @timer = nil
39
+ end
40
+
41
+ self
42
+ end
43
+
44
+ def completeLoading
45
+ response = NSHTTPURLResponse.alloc.initWithURL(request.URL,
46
+ statusCode:@stub.response_status_code,
47
+ HTTPVersion:"HTTP/1.1",
48
+ headerFields:@stub.response_headers)
49
+
50
+ client.URLProtocol(self, didReceiveResponse:response, cacheStoragePolicy:NSURLCacheStorageNotAllowed)
51
+ client.URLProtocol(self, didLoadData:@stub.response_body.dataUsingEncoding(NSUTF8StringEncoding))
52
+ client.URLProtocolDidFinishLoading(self)
53
+ end
54
+
35
55
  def startLoading
36
56
  request = self.request
37
57
  client = self.client
38
58
 
39
- unless stub = self.class.stub_for(request)
59
+ unless @stub = self.class.stub_for(self.request)
40
60
  error = NSError.errorWithDomain("WebStub", code:0, userInfo:{ NSLocalizedDescriptionKey: "network access is not permitted!"})
41
61
  client.URLProtocol(self, didFailWithError:error)
42
62
 
43
63
  return
44
64
  end
45
65
 
46
- response = NSHTTPURLResponse.alloc.initWithURL(request.URL,
47
- statusCode:stub.response_status_code,
48
- HTTPVersion:"HTTP/1.1",
49
- headerFields:stub.response_headers)
50
-
51
- Dispatch::Queue.concurrent("webstub.response").after(stub.response_delay) do
52
- client.URLProtocol(self, didReceiveResponse:response, cacheStoragePolicy:NSURLCacheStorageNotAllowed)
53
- client.URLProtocol(self, didLoadData:stub.response_body.dataUsingEncoding(NSUTF8StringEncoding))
54
- client.URLProtocolDidFinishLoading(self)
55
- end
66
+ @timer = NSTimer.scheduledTimerWithTimeInterval(@stub.response_delay, target:self, selector: :completeLoading, userInfo:nil, repeats:false)
56
67
  end
57
68
 
58
69
  def stopLoading
70
+ if @timer
71
+ @timer.invalidate
72
+ end
59
73
  end
60
74
 
61
75
  private
@@ -1,3 +1,3 @@
1
1
  module WebStub
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webstub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-04 00:00:00.000000000 Z
12
+ date: 2013-01-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Easily stub out HTTP responses in RubyMotion specs
15
15
  email: