api_sim 5.0.0 → 5.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: f25876bf3d2f81e5cf254366d9a06c9af8b35901
4
- data.tar.gz: 393cfbc364e26110599c9061a4243199fa5cf756
3
+ metadata.gz: c78fb49e9b8055b9c57b7d929f14e3ccdc550400
4
+ data.tar.gz: f366b4b136aa46472c39ec18e2be8e66032e01ac
5
5
  SHA512:
6
- metadata.gz: 2469924022ed478e38dd51ca3877b1c2d971c9bbc5211bf402377a32d6af1fb899af105bc998d615541da320223b06f94a15f733809ad42a0edfaf519b6d7216
7
- data.tar.gz: c4509486aeb1fd132f185c0d6baa08506e59e37a337a054088114ae0207e75b4484962582b6610600bf3fd807d7b5f7746f5a6707798b2bafcb64e14d29b9dcf
6
+ metadata.gz: 46122772e2556bc430916fa25d89f0cdbbb864ef1d980a6644674da31f7133038ca2b3af48ca393544e0d0077c686e7f811f54cbc0a363ba16827d6bfe639490
7
+ data.tar.gz: c42b0887edaed2dad8ffde3f39d6bf661607e89828041f2e6cda7729a927f55ec0374b21a6fe9761f7e01f9934b1bfb1c2c72942555be7db33e0acd592edf49a
@@ -1,30 +1,32 @@
1
1
  PATH
2
- remote: ../../
2
+ remote: ../..
3
3
  specs:
4
- api_sim (2.2.0)
4
+ api_sim (5.0.0)
5
5
  json-schema (>= 2.5)
6
+ mustermann (~> 1.0.0.beta2)
6
7
  nokogiri (~> 1.6.7)
7
8
  sinatra (~> 1.0)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
- addressable (2.3.8)
13
- json-schema (2.6.2)
14
- addressable (~> 2.3.8)
13
+ addressable (2.5.1)
14
+ public_suffix (~> 2.0, >= 2.0.2)
15
+ json-schema (2.8.0)
16
+ addressable (>= 2.4)
15
17
  mini_portile2 (2.1.0)
16
- nokogiri (1.6.8)
18
+ mustermann (1.0.0)
19
+ nokogiri (1.6.8.1)
17
20
  mini_portile2 (~> 2.1.0)
18
- pkg-config (~> 1.1.7)
19
- pkg-config (1.1.7)
20
- rack (1.6.4)
21
+ public_suffix (2.0.5)
22
+ rack (1.6.5)
21
23
  rack-protection (1.5.3)
22
24
  rack
23
- sinatra (1.4.7)
25
+ sinatra (1.4.8)
24
26
  rack (~> 1.5)
25
27
  rack-protection (~> 1.4)
26
28
  tilt (>= 1.3, < 3)
27
- tilt (2.0.5)
29
+ tilt (2.0.7)
28
30
 
29
31
  PLATFORMS
30
32
  ruby
@@ -33,4 +35,4 @@ DEPENDENCIES
33
35
  api_sim!
34
36
 
35
37
  BUNDLED WITH
36
- 1.12.5
38
+ 1.14.6
@@ -3,6 +3,7 @@ require 'api_sim'
3
3
  ENDPOINT_JSON_SCHEMA = {type: "object", properties: {a: {type: "integer"}}}.to_json
4
4
 
5
5
  app = ApiSim.build_app do
6
+ configure_endpoint 'GET', '/endpoint?queryParam=foo', 'Hi!', 200, {'X-CUSTOM-HEADER' => 'easy as abc'}, ENDPOINT_JSON_SCHEMA
6
7
  configure_endpoint 'GET', '/endpoint', 'Hi!', 200, {'X-CUSTOM-HEADER' => 'easy as abc'}, ENDPOINT_JSON_SCHEMA
7
8
  configure_endpoint 'GET', '/begin/:middle/end', 'You found an any-value path', 200, {'CONTENT-TYPE' => 'application/json'}
8
9
 
@@ -16,8 +16,8 @@ module ApiSim
16
16
  end
17
17
 
18
18
  def self.endpoints(endpoints = nil)
19
- return @endpoints if @endpoints
20
- @endpoints = endpoints
19
+ @endpoints = endpoints if endpoints
20
+ return @endpoints
21
21
  end
22
22
 
23
23
  get '/' do
@@ -25,18 +25,18 @@ module ApiSim
25
25
  end
26
26
 
27
27
  get '/ui/response/:method/*' do
28
- @config = matcher(faux_request(http_method, route, faux_body))
28
+ @config = matcher(faux_request(method: http_method, path: route, body: faux_body, query: request.query_string))
29
29
  erb :'responses/form.html', layout: :'layout.html'
30
30
  end
31
31
 
32
32
  get '/ui/requests/:method/*' do
33
- @config = matcher(faux_request(http_method, route, faux_body))
33
+ @config = matcher(faux_request(method: http_method, path: route, body: faux_body, query: request.query_string))
34
34
 
35
35
  erb :'requests/index.html', layout: :'layout.html'
36
36
  end
37
37
 
38
38
  post '/ui/response/:method/*' do
39
- @config = matcher(faux_request(http_method, route, faux_body))
39
+ @config = matcher(faux_request(method: http_method, path: route, body: faux_body, query: request.query_string))
40
40
  unless params['schema'].empty?
41
41
  @errors = JSON::Validator.fully_validate(JSON.parse(params['schema']), params['body'])
42
42
  if @errors.any?
@@ -72,7 +72,7 @@ module ApiSim
72
72
 
73
73
  get '/requests/*' do
74
74
  params = API_REQUEST_MATCHER.match(request.path) || halt(404)
75
- endpoint = matcher(faux_request(params['method'], params['path']))
75
+ endpoint = matcher(faux_request(method: params['method'], path: params['path'], query: request.query_string))
76
76
 
77
77
  halt(404) unless endpoint
78
78
  endpoint.requests.to_json
@@ -112,7 +112,7 @@ module ApiSim
112
112
  end
113
113
 
114
114
  def mimicked_request
115
- faux_request(http_method, route, request.body)
115
+ faux_request(method: http_method, path: route, body: request.body, query: request.query_string)
116
116
  end
117
117
 
118
118
  def http_method
@@ -127,9 +127,9 @@ module ApiSim
127
127
  self.class.endpoints.select { |matcher| matcher.matches?(request) }
128
128
  end
129
129
 
130
- def faux_request(method='', path='', body=StringIO.new(''))
130
+ def faux_request(method: '', path: '', body: StringIO.new(''), query: '')
131
131
  body.rewind
132
- Rack::Request.new({'rack.input' => body, 'REQUEST_METHOD' => method, 'PATH_INFO' => path})
132
+ Rack::Request.new({'rack.input' => body, 'REQUEST_METHOD' => method, 'PATH_INFO' => path, 'QUERY_STRING' => query})
133
133
  end
134
134
 
135
135
  def faux_body
@@ -1,3 +1,3 @@
1
1
  module ApiSim
2
- VERSION = "5.0.0"
2
+ VERSION = "5.1.0"
3
3
  end
@@ -8,6 +8,10 @@ module ApiSim
8
8
  endpoint.custom_matcher? ? '(Custom matcher)' : ''
9
9
  end
10
10
 
11
+ def endpoint_query_string(endpoint)
12
+ "?#{endpoint.query}" if endpoint.query != ''
13
+ end
14
+
11
15
  def config
12
16
  @config
13
17
  end
@@ -12,7 +12,7 @@
12
12
  <tbody>
13
13
  <% endpoints.each do |endpoint| %>
14
14
  <tr>
15
- <td><%= endpoint.http_method %> <%= endpoint.route %> <%= custom_matcher?(endpoint) %></td>
15
+ <td><%= endpoint.http_method %> <%= endpoint.route %><%= endpoint_query_string(endpoint) %> <%= custom_matcher?(endpoint) %></td>
16
16
  <td><%= endpoint_match endpoint %></td>
17
17
  <td>
18
18
  <% if endpoint.readonly? %>
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: 5.0.0
4
+ version: 5.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: 2017-04-07 00:00:00.000000000 Z
11
+ date: 2017-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -189,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  version: '0'
190
190
  requirements: []
191
191
  rubyforge_project:
192
- rubygems_version: 2.5.1
192
+ rubygems_version: 2.4.5
193
193
  signing_key:
194
194
  specification_version: 4
195
195
  summary: A DSL on top of sinatra for building application simulators