api_sim 3.0.0 → 3.1.0

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.
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