api_sim 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b861496c5eace589914cf22783667e76a98b9e58
4
- data.tar.gz: 18936141652259c619b2432669a2b926ffe33997
3
+ metadata.gz: 4cf6e3d93abfa7755f45ddc06e60609e6a6a7bcd
4
+ data.tar.gz: e5c2e34b46e497cc7245ccb4bcc3d90310a0c28b
5
5
  SHA512:
6
- metadata.gz: 6916e181541ce761dd3fdf4182efc6e2b0f45ebf0c2e61aa893f7b8e5e27e5be9e41454827f3a3c43b1156e5673c0adce7ab30db76a715821266cb717e903f44
7
- data.tar.gz: d4518904d1c87e9684ed66453cafe275991ed4dd0f5f544f6d48a67407c8763679bc2a715827e7c8c2b4381cded513aa085f6fa149d5424bb571a12bc42f0b65
6
+ metadata.gz: ff1de54e38862120efbd8399d97168df9f8e75aab2222ca1efdd94dbed61ef20c6effd20679f25be36fe0436c2c005c54686fbd8d731c96ad7ad4e8341e4566a
7
+ data.tar.gz: b6c5a64d7f2a325de35ae9395779b5e8d4cc9c59ab8cb0bd3a8d6b3897f973fb85f62a192530b0d7a7eaed3caf99d1f4aff796d007a1d2105054865e11968643
@@ -1,3 +1,4 @@
1
+ require 'forwardable'
1
2
  require 'api_sim/recorded_request'
2
3
  require 'api_sim/matchers/base_matcher'
3
4
 
@@ -19,7 +20,7 @@ module ApiSim
19
20
  end
20
21
 
21
22
  def response(request)
22
- response_generator.call(request)
23
+ response_generator.call(SmartRequest.new(request, self))
23
24
  end
24
25
 
25
26
  def readonly?
@@ -33,4 +34,17 @@ module ApiSim
33
34
  end
34
35
  end
35
36
  end
37
+
38
+ class SmartRequest < SimpleDelegator
39
+ def initialize(obj, matcher)
40
+ super(obj)
41
+ @matcher = matcher
42
+ end
43
+
44
+ def [](requested_part)
45
+ @matcher.route.split('/').zip(path.split('/')).find { |matcher_part, path_part|
46
+ ":#{requested_part}" == matcher_part and break path_part
47
+ } || super
48
+ end
49
+ end
36
50
  end
@@ -1,3 +1,3 @@
1
1
  module ApiSim
2
- VERSION = "3.0.0"
2
+ VERSION = "3.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_sim
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TJ Taylor
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-28 00:00:00.000000000 Z
11
+ date: 2016-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra