http_vanilli 0.0.3 → 0.0.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,8 +32,8 @@ module HttpVanilli
32
32
  ## Mapping API
33
33
 
34
34
  # Take the info from the innards of Net::HTTP and build a request.
35
- def build_request(kind,http,request,&block)
36
- HttpVanilli::Request.build(kind,http,request,&block)
35
+ def build_request(kind, http, request, index, &block)
36
+ HttpVanilli::Request.build(kind, http, request, index, &block)
37
37
  end
38
38
 
39
39
  # Should we map the request?
@@ -39,12 +39,22 @@ module Net #:nodoc: all
39
39
  end
40
40
 
41
41
  class HTTP
42
+ # add some class methods
42
43
  class << self
43
44
  def socket_type_with_http_vanilli
44
45
  HttpVanilli::NetHttp::StubSocket
45
46
  end
46
47
  alias_method :socket_type_without_http_vanilli, :socket_type
47
48
  alias_method :socket_type, :socket_type_with_http_vanilli
49
+
50
+ def last_request_index
51
+ @last_request_index ||= -1
52
+ end
53
+
54
+ def next_request_index
55
+ @last_request_index ||= -1
56
+ @last_request_index += 1
57
+ end
48
58
  end
49
59
 
50
60
  def request_with_http_vanilli(request, body = nil, &block)
@@ -53,7 +63,7 @@ module Net #:nodoc: all
53
63
  request.set_body_internal body
54
64
 
55
65
  # Wrap Net::HTTPRequest & associated info in a HttpVanilli::Request
56
- vanilli_request = mapper.build_request(:net_http, self, request, &block)
66
+ vanilli_request = mapper.build_request(:net_http, self, request, self.class.next_request_index, &block)
57
67
 
58
68
  # The mapper can map the request. Do it.
59
69
  if mapper.map_request?(vanilli_request)
@@ -3,11 +3,12 @@ require 'http_vanilli/request'
3
3
  module HttpVanilli
4
4
  module NetHttp
5
5
  class Request < HttpVanilli::Request
6
- attr_reader :block, :uri, :method, :original_request
6
+ attr_reader :block, :uri, :method, :original_request, :index
7
7
 
8
- def initialize(http,request,&block)
8
+ def initialize(http,request,index,&block)
9
9
  @http = http
10
10
  @original_request = request
11
+ @index = index
11
12
  @block = block
12
13
 
13
14
  protocol = http.use_ssl? ? "https" : "http"
@@ -45,7 +45,8 @@ module HttpVanilli
45
45
  "rack.multiprocess" => false,
46
46
  "rack.run_once" => false,
47
47
 
48
- "rack.url_scheme" => request.uri.scheme
48
+ "rack.url_scheme" => request.uri.scheme,
49
+ "http_vanilli.request_index" => request.index
49
50
  })
50
51
 
51
52
  app.call(env)
@@ -53,7 +54,14 @@ module HttpVanilli
53
54
 
54
55
  def app
55
56
  inner_app = lambda {|l| [BadStatus,{'Content-Type' => 'text/plain'},['']]}
56
- @app_class.new(inner_app,*@args,&@block)
57
+
58
+ if Proc === @app_class
59
+ lambda {|env|
60
+ @app_class.call(env) || inner_app.call(env)
61
+ }
62
+ else
63
+ @app_class.new(inner_app,*@args,&@block)
64
+ end
57
65
  end
58
66
  end
59
67
  end
@@ -1,3 +1,3 @@
1
1
  module HttpVanilli
2
- Version = '0.0.3'
2
+ Version = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_vanilli
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 23
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 3
9
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
10
11
  platform: ruby
11
12
  authors:
12
13
  - Lachie Cox
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-09-02 00:00:00 +10:00
18
+ date: 2011-04-19 00:00:00 +10:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: exemplor
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -33,9 +36,11 @@ dependencies:
33
36
  name: addressable
34
37
  prerelease: false
35
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
36
40
  requirements:
37
41
  - - ">="
38
42
  - !ruby/object:Gem::Version
43
+ hash: 7
39
44
  segments:
40
45
  - 2
41
46
  - 2
@@ -56,19 +61,16 @@ files:
56
61
  - lib/angry_web/matcher.rb
57
62
  - lib/http_vanilli/abstract_responder.rb
58
63
  - lib/http_vanilli/basic_mapper.rb
59
- - lib/http_vanilli/basic_mapping.rb
60
64
  - lib/http_vanilli/net_http/override.rb
61
65
  - lib/http_vanilli/net_http/request.rb
62
66
  - lib/http_vanilli/net_http/response.rb
63
67
  - lib/http_vanilli/net_http/stubs.rb
64
68
  - lib/http_vanilli/net_http/util.rb
65
- - lib/http_vanilli/other_mapper.rb
66
69
  - lib/http_vanilli/request.rb
67
70
  - lib/http_vanilli/responders/block.rb
68
71
  - lib/http_vanilli/responders/rack.rb
69
72
  - lib/http_vanilli/responders.rb
70
73
  - lib/http_vanilli/response.rb
71
- - lib/http_vanilli/test_adapters/rspec.rb
72
74
  - lib/http_vanilli/util.rb
73
75
  - lib/http_vanilli/version.rb
74
76
  - lib/http_vanilli.rb
@@ -82,16 +84,20 @@ rdoc_options: []
82
84
  require_paths:
83
85
  - lib
84
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
85
88
  requirements:
86
89
  - - ">="
87
90
  - !ruby/object:Gem::Version
91
+ hash: 3
88
92
  segments:
89
93
  - 0
90
94
  version: "0"
91
95
  required_rubygems_version: !ruby/object:Gem::Requirement
96
+ none: false
92
97
  requirements:
93
98
  - - ">="
94
99
  - !ruby/object:Gem::Version
100
+ hash: 23
95
101
  segments:
96
102
  - 1
97
103
  - 3
@@ -100,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
106
  requirements: []
101
107
 
102
108
  rubyforge_project: http_vanilli
103
- rubygems_version: 1.3.6
109
+ rubygems_version: 1.6.2
104
110
  signing_key:
105
111
  specification_version: 3
106
112
  summary: Flexible web connection mocking lib.
@@ -1,22 +0,0 @@
1
- require 'addressable/uri'
2
-
3
- module Unused
4
- class BasicMapping
5
- include HttpVanilli::NetHttp::YieldResponse
6
-
7
- def initialize(method,url,&block)
8
- @method = method
9
- @url = Addressable::URI.heuristic_parse(url)
10
- @block = block
11
- end
12
-
13
- def match?(request)
14
- (request.host == @url.host)
15
- end
16
-
17
- def rack_response
18
- @block[request]
19
- end
20
-
21
- end
22
- end
@@ -1,54 +0,0 @@
1
- require 'ostruct'
2
- require 'pp'
3
-
4
- module HttpVanilli
5
- class OtherMapper
6
- def customise_request(&block)
7
- @customise_request = block
8
- end
9
-
10
- # Take the info from the innards of Net::HTTP and build a request.
11
- def build_request(kind,http,request,body,&block)
12
- req = OpenStruct.new
13
- req.block = block
14
-
15
- pp http
16
- pp request.to_hash
17
-
18
- protocol = http.use_ssl? ? "https" : "http"
19
-
20
- path = request.path
21
- path = Addressable::URI.parse(request.path).request_uri if request.path =~ /^http/
22
-
23
- req.uri = Addressable::URI.parse( "#{protocol}://#{http.address}:#{http.port}#{path}" )
24
- req.method = request.method.downcase.to_sym
25
-
26
- if @customise_request
27
- @customise_request[req]
28
- end
29
-
30
- req
31
- end
32
-
33
- # Should we map the request?
34
- def map_request?(request)
35
- true
36
- end
37
-
38
- # Map the request
39
- def map_request(request)
40
- response = HttpVanilli::NetHttp::Response.new(200,'cool')
41
- response.body = "boddy"
42
-
43
- nhrsp = response.to_net_http
44
- request.block[nhrsp] if request.block
45
-
46
- nhrsp
47
- end
48
-
49
- # The request wasn't matched and normal net connection was disallowed.
50
- def unmapped_request(request)
51
- raise "unmatched_request :("
52
- end
53
- end
54
- end
@@ -1,9 +0,0 @@
1
- require 'http_vanilli'
2
-
3
- module HttpVanilli
4
- module RSpec
5
- def stub_web(method, url, &block)
6
- HttpVanilli.mapper.add_mapping(method,url,&block)
7
- end
8
- end
9
- end