mirage 3.0.14 → 4.0.0.alpha1
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 +5 -13
- data/lib/mirage/client/client.rb +3 -3
- data/lib/mirage/client/request.rb +0 -24
- data/lib/mirage/client/requests.rb +27 -2
- data/lib/mirage/client/template.rb +1 -1
- data/lib/mirage/client/template/model/instance_methods.rb +1 -1
- data/lib/mirage/hashie/mash_ext.rb +8 -0
- data/server/errors.rb +11 -0
- data/server/helpers.rb +34 -1
- data/server/routes.rb +21 -0
- data/server/routes/backup.rb +11 -0
- data/server/routes/defaults.rb +20 -0
- data/server/routes/pid.rb +7 -0
- data/server/routes/requests.rb +43 -0
- data/server/routes/responses.rb +27 -0
- data/server/routes/templates.rb +41 -0
- data/server/server.rb +2 -176
- metadata +41 -39
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZjFiYmQzYjZlYzMxYWFiNmZlNTUxMWQ2MWUzOTQyMGU0NjIyMmEyMw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f6e9871a63a2b39f0502f30432f05d8bdfb622c4
|
4
|
+
data.tar.gz: 0c5bac0bdb4dae476950e56ab1f1af2092fef881
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
N2M0MDgyOWE0OTdkMzVlOWMzOWFhNWM0YTY5MDZjYmZhZDBiZjQ5YzI4YzE1
|
11
|
-
YTM1OWQ3MzZlZDg0MDkwMmJiNGM5NGVmODY2YzJhNjE2YmNhZTA=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NzNiMTIyOGQxMzlhYmM1NmM0ZDQyOTgzMWIwYmM3MDdkMmQ3ZDAyODI2MDMy
|
14
|
-
NjM1NmUzZWQxZjY3ZDc2NjAyNjQ1NGEzNTczZTE2ZDNiYjg3YTJjMjc4NDI4
|
15
|
-
YmY3ODhkYjZmMGNhY2NiODYzMDk3NjI2YzY3MGQ5MzJlOGYyOTQ=
|
6
|
+
metadata.gz: dd838a9538c6eff9e445dfe3e03043525b8fc5661e56f6de10bfb23c5638984dedeceeca9fbeb2fdec7c1f5c96d651717b9d5d78501e7e737ce2bf97977de25b
|
7
|
+
data.tar.gz: 857b213ff50e989b6006f06fb3ccbc7b5960e89c2fe4dcc0a07685fc626433a499f5a94372a62f4f97942637e8edb3a6861be0e95e79920ec7ad8c436dd8a1c7
|
data/lib/mirage/client/client.rb
CHANGED
@@ -17,7 +17,7 @@ module Mirage
|
|
17
17
|
elsif options.kind_of?(Hash) && options[:url]
|
18
18
|
@url = options[:url]
|
19
19
|
else
|
20
|
-
raise "specify a valid URL or port"
|
20
|
+
raise ArgumentError, "specify a valid URL or port"
|
21
21
|
end
|
22
22
|
|
23
23
|
@templates = Templates.new(@url)
|
@@ -38,8 +38,8 @@ module Mirage
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def requests id=nil
|
41
|
-
return
|
42
|
-
Requests.new(@url)
|
41
|
+
return Requests.get "#{@url}/requests/#{id}" if id
|
42
|
+
Requests.new("#{@url}/requests")
|
43
43
|
end
|
44
44
|
|
45
45
|
def prime
|
@@ -1,30 +1,6 @@
|
|
1
1
|
require 'hashie/mash'
|
2
2
|
module Mirage
|
3
3
|
class Request
|
4
|
-
include HTTParty
|
5
|
-
|
6
|
-
class << self
|
7
|
-
alias_method :backedup_get, :get
|
8
|
-
def get url
|
9
|
-
result = Hashie::Mash.new(backedup_get(url, format: :json))
|
10
|
-
request = new
|
11
|
-
request.parameters = result.parameters
|
12
|
-
request.headers = result.headers
|
13
|
-
request.request_url = result.request_url
|
14
|
-
request.body = result.body
|
15
|
-
request.id = result.id
|
16
|
-
request
|
17
|
-
rescue
|
18
|
-
raise NotReceivedException.new('Mirage has not received a request for this id')
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
4
|
attr_accessor :parameters, :headers, :body, :request_url, :id
|
23
|
-
|
24
|
-
def delete
|
25
|
-
self.class.delete(id)
|
26
|
-
end
|
27
|
-
|
28
|
-
class NotReceivedException < StandardError ; end
|
29
5
|
end
|
30
6
|
end
|
@@ -1,13 +1,38 @@
|
|
1
1
|
module Mirage
|
2
|
-
class Requests
|
2
|
+
class Requests < Array
|
3
|
+
class NotReceivedException < StandardError ; end
|
4
|
+
|
3
5
|
include HTTParty
|
4
6
|
|
7
|
+
class << self
|
8
|
+
alias_method :backedup_get, :get
|
9
|
+
def get url
|
10
|
+
response = backedup_get(url, format: :json)
|
11
|
+
requests = new(url)
|
12
|
+
response.each do |request_data|
|
13
|
+
request_data_hash = Hashie::Mash.new(request_data)
|
14
|
+
request = Request.new
|
15
|
+
request.parameters = request_data_hash.parameters
|
16
|
+
request.headers = request_data_hash.headers
|
17
|
+
request.request_url = request_data_hash.request_url
|
18
|
+
request.body = request_data_hash.body
|
19
|
+
request.id = request_data_hash.id
|
20
|
+
requests << request
|
21
|
+
end
|
22
|
+
requests
|
23
|
+
rescue Exception => e
|
24
|
+
raise NotReceivedException.new('Mirage has not received a request for this id')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
5
28
|
def initialize base_url
|
6
|
-
@url =
|
29
|
+
@url = base_url
|
7
30
|
end
|
8
31
|
|
9
32
|
def delete_all
|
10
33
|
self.class.delete(@url)
|
11
34
|
end
|
35
|
+
|
36
|
+
alias delete delete_all
|
12
37
|
end
|
13
38
|
end
|
data/server/errors.rb
ADDED
data/server/helpers.rb
CHANGED
@@ -1,3 +1,36 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
require 'helpers/template_requirements'
|
3
|
-
require 'helpers/http_headers'
|
3
|
+
require 'helpers/http_headers'
|
4
|
+
|
5
|
+
module Mirage
|
6
|
+
class Server < Sinatra::Base
|
7
|
+
helpers do
|
8
|
+
|
9
|
+
def synchronize &block
|
10
|
+
Mutex.new.synchronize &block
|
11
|
+
end
|
12
|
+
|
13
|
+
def response_id
|
14
|
+
params[:id].to_i
|
15
|
+
end
|
16
|
+
|
17
|
+
def prime &block
|
18
|
+
block.call Mirage::Client.new "http://localhost:#{settings.port}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def send_response(mock_response, body='', request={}, query_string='')
|
22
|
+
sleep mock_response.response_spec['delay']
|
23
|
+
content_type(mock_response.response_spec['content_type'])
|
24
|
+
status mock_response.response_spec['status']
|
25
|
+
headers mock_response.headers
|
26
|
+
mock_response.value(body, request, query_string)
|
27
|
+
end
|
28
|
+
|
29
|
+
def tracked_requests response_id
|
30
|
+
REQUESTS[response_id] ||= []
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/server/routes.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'routes/defaults'
|
2
|
+
require 'routes/templates'
|
3
|
+
require 'routes/requests'
|
4
|
+
require 'routes/backup'
|
5
|
+
require 'routes/responses'
|
6
|
+
require 'routes/pid'
|
7
|
+
module Mirage
|
8
|
+
class Server < Sinatra::Base
|
9
|
+
get '/' do
|
10
|
+
haml :index
|
11
|
+
end
|
12
|
+
|
13
|
+
put '/' do
|
14
|
+
synchronize do
|
15
|
+
MockResponse.revert
|
16
|
+
end
|
17
|
+
|
18
|
+
200
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Mirage
|
2
|
+
|
3
|
+
class Server < Sinatra::Base
|
4
|
+
put '/defaults' do
|
5
|
+
synchronize do
|
6
|
+
MockResponse.delete_all
|
7
|
+
if File.directory?(settings.defaults.to_s)
|
8
|
+
Dir["#{settings.defaults}/**/*.rb"].each do |default|
|
9
|
+
begin
|
10
|
+
eval File.read(default)
|
11
|
+
rescue Exception => e
|
12
|
+
raise "Unable to load default responses from: #{default}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
200
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Mirage
|
2
|
+
class Server < Sinatra::Base
|
3
|
+
REQUESTS = {}
|
4
|
+
delete '/requests' do
|
5
|
+
synchronize do
|
6
|
+
REQUESTS.clear
|
7
|
+
end
|
8
|
+
|
9
|
+
200
|
10
|
+
end
|
11
|
+
|
12
|
+
delete '/requests/:id' do
|
13
|
+
synchronize do
|
14
|
+
REQUESTS.delete(response_id)
|
15
|
+
end
|
16
|
+
|
17
|
+
200
|
18
|
+
end
|
19
|
+
|
20
|
+
get '/requests/:id' do
|
21
|
+
content_type :json
|
22
|
+
tracked_requests = tracked_requests(response_id)
|
23
|
+
response = []
|
24
|
+
if tracked_requests
|
25
|
+
tracked_requests.collect do |tracked_request|
|
26
|
+
tracked_request.body.rewind
|
27
|
+
body = tracked_request.body.read
|
28
|
+
|
29
|
+
parameters = tracked_request.params.dup.select { |key, value| key != body }
|
30
|
+
|
31
|
+
response << {id: request.url,
|
32
|
+
request_url: tracked_request.url,
|
33
|
+
headers: extract_http_headers(tracked_request.env),
|
34
|
+
parameters: parameters,
|
35
|
+
body: body}
|
36
|
+
end
|
37
|
+
response.to_json
|
38
|
+
else
|
39
|
+
404
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Mirage
|
2
|
+
class Server < Sinatra::Base
|
3
|
+
%w(get post delete put options).each do |http_method|
|
4
|
+
send(http_method, '/responses/*') do |name|
|
5
|
+
body, query_string = Rack::Utils.unescape(request.body.read.to_s), request.query_string
|
6
|
+
|
7
|
+
options = {:body => body,
|
8
|
+
:http_method => http_method,
|
9
|
+
:endpoint => name,
|
10
|
+
:params => request.params,
|
11
|
+
:headers => extract_http_headers(env)}
|
12
|
+
begin
|
13
|
+
record = MockResponse.find(options)
|
14
|
+
rescue ServerResponseNotFound
|
15
|
+
record = MockResponse.find_default(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
synchronize do
|
19
|
+
tracked_requests(record.response_id) << request.dup
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
send_response(record, body, request, query_string)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Mirage
|
2
|
+
class Server < Sinatra::Base
|
3
|
+
get '/templates/:id/preview' do
|
4
|
+
send_response(MockResponse.find_by_id(response_id), '', {}, '')
|
5
|
+
end
|
6
|
+
|
7
|
+
delete '/templates/:id' do
|
8
|
+
synchronize do
|
9
|
+
MockResponse.delete(response_id)
|
10
|
+
REQUESTS.delete(response_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
200
|
14
|
+
end
|
15
|
+
|
16
|
+
put '/templates/*' do |name|
|
17
|
+
content_type :json
|
18
|
+
mock_response = synchronize do
|
19
|
+
MockResponse.new(name, JSON.parse(request.body.read))
|
20
|
+
end
|
21
|
+
|
22
|
+
mock_response.requests_url = request.url.gsub("/templates/#{name}", "/requests/#{mock_response.response_id}")
|
23
|
+
{:id => mock_response.response_id}.to_json
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
delete '/templates' do
|
28
|
+
synchronize do
|
29
|
+
REQUESTS.clear
|
30
|
+
MockResponse.delete_all
|
31
|
+
end
|
32
|
+
|
33
|
+
200
|
34
|
+
end
|
35
|
+
|
36
|
+
get '/templates/:id' do
|
37
|
+
MockResponse.find_by_id(response_id).raw
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
data/server/server.rb
CHANGED
@@ -1,184 +1,10 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
require 'helpers'
|
3
3
|
require 'base64'
|
4
|
+
require 'routes'
|
5
|
+
require 'errors'
|
4
6
|
module Mirage
|
5
|
-
|
6
7
|
class Server < Sinatra::Base
|
7
|
-
|
8
|
-
REQUESTS = {}
|
9
|
-
|
10
8
|
helpers Helpers::TemplateRequirements, Helpers::HttpHeaders
|
11
|
-
|
12
|
-
put '/templates/*' do |name|
|
13
|
-
content_type :json
|
14
|
-
mock_response = synchronize do
|
15
|
-
MockResponse.new(name, JSON.parse(request.body.read))
|
16
|
-
end
|
17
|
-
|
18
|
-
mock_response.requests_url = request.url.gsub("/templates/#{name}", "/requests/#{mock_response.response_id}")
|
19
|
-
{:id => mock_response.response_id}.to_json
|
20
|
-
end
|
21
|
-
|
22
|
-
%w(get post delete put options).each do |http_method|
|
23
|
-
send(http_method, '/responses/*') do |name|
|
24
|
-
body, query_string = Rack::Utils.unescape(request.body.read.to_s), request.query_string
|
25
|
-
|
26
|
-
options = {:body => body,
|
27
|
-
:http_method => http_method,
|
28
|
-
:endpoint => name,
|
29
|
-
:params => request.params,
|
30
|
-
:headers => extract_http_headers(env)}
|
31
|
-
begin
|
32
|
-
record = MockResponse.find(options)
|
33
|
-
rescue ServerResponseNotFound
|
34
|
-
record = MockResponse.find_default(options)
|
35
|
-
end
|
36
|
-
|
37
|
-
synchronize do
|
38
|
-
REQUESTS[record.response_id] = request.dup
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
send_response(record, body, request, query_string)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
get '/templates/:id/preview' do
|
47
|
-
send_response(MockResponse.find_by_id(response_id), '', {}, '')
|
48
|
-
end
|
49
|
-
|
50
|
-
delete '/templates/:id' do
|
51
|
-
synchronize do
|
52
|
-
MockResponse.delete(response_id)
|
53
|
-
REQUESTS.delete(response_id)
|
54
|
-
end
|
55
|
-
|
56
|
-
200
|
57
|
-
end
|
58
|
-
|
59
|
-
delete '/requests' do
|
60
|
-
synchronize do
|
61
|
-
REQUESTS.clear
|
62
|
-
end
|
63
|
-
|
64
|
-
200
|
65
|
-
end
|
66
|
-
|
67
|
-
delete '/requests/:id' do
|
68
|
-
synchronize do
|
69
|
-
REQUESTS.delete(response_id)
|
70
|
-
end
|
71
|
-
|
72
|
-
200
|
73
|
-
end
|
74
|
-
|
75
|
-
delete '/templates' do
|
76
|
-
synchronize do
|
77
|
-
REQUESTS.clear
|
78
|
-
MockResponse.delete_all
|
79
|
-
end
|
80
|
-
|
81
|
-
200
|
82
|
-
end
|
83
|
-
|
84
|
-
get '/templates/:id' do
|
85
|
-
MockResponse.find_by_id(response_id).raw
|
86
|
-
end
|
87
|
-
|
88
|
-
get '/requests/:id' do
|
89
|
-
content_type :json
|
90
|
-
tracked_request = REQUESTS[response_id]
|
91
|
-
if tracked_request
|
92
|
-
|
93
|
-
tracked_request.body.rewind
|
94
|
-
body = tracked_request.body.read
|
95
|
-
|
96
|
-
parameters = tracked_request.params.dup.select { |key, value| key != body }
|
97
|
-
|
98
|
-
{id: request.url,
|
99
|
-
request_url: tracked_request.url,
|
100
|
-
headers: extract_http_headers(tracked_request.env),
|
101
|
-
parameters: parameters,
|
102
|
-
body: body}.to_json
|
103
|
-
|
104
|
-
else
|
105
|
-
404
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
get '/' do
|
110
|
-
haml :index
|
111
|
-
end
|
112
|
-
|
113
|
-
|
114
|
-
put '/defaults' do
|
115
|
-
synchronize do
|
116
|
-
MockResponse.delete_all
|
117
|
-
if File.directory?(settings.defaults.to_s)
|
118
|
-
Dir["#{settings.defaults}/**/*.rb"].each do |default|
|
119
|
-
begin
|
120
|
-
eval File.read(default)
|
121
|
-
rescue Exception => e
|
122
|
-
raise "Unable to load default responses from: #{default}"
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
200
|
128
|
-
end
|
129
|
-
#
|
130
|
-
put '/backup' do
|
131
|
-
synchronize do
|
132
|
-
MockResponse.backup
|
133
|
-
end
|
134
|
-
|
135
|
-
200
|
136
|
-
end
|
137
|
-
|
138
|
-
|
139
|
-
put '/' do
|
140
|
-
synchronize do
|
141
|
-
MockResponse.revert
|
142
|
-
end
|
143
|
-
|
144
|
-
200
|
145
|
-
end
|
146
|
-
|
147
|
-
get '/pid' do
|
148
|
-
"#{$$}"
|
149
|
-
end
|
150
|
-
|
151
|
-
error ServerResponseNotFound do
|
152
|
-
404
|
153
|
-
end
|
154
|
-
|
155
|
-
error do
|
156
|
-
erb request.env['sinatra.error'].message
|
157
|
-
end
|
158
|
-
|
159
|
-
helpers do
|
160
|
-
|
161
|
-
def synchronize &block
|
162
|
-
Mutex.new.synchronize &block
|
163
|
-
end
|
164
|
-
|
165
|
-
def response_id
|
166
|
-
params[:id].to_i
|
167
|
-
end
|
168
|
-
|
169
|
-
def prime &block
|
170
|
-
block.call Mirage::Client.new "http://localhost:#{settings.port}"
|
171
|
-
end
|
172
|
-
|
173
|
-
def send_response(mock_response, body='', request={}, query_string='')
|
174
|
-
sleep mock_response.response_spec['delay']
|
175
|
-
content_type(mock_response.response_spec['content_type'])
|
176
|
-
status mock_response.response_spec['status']
|
177
|
-
headers mock_response.headers
|
178
|
-
mock_response.value(body, request, query_string)
|
179
|
-
end
|
180
|
-
|
181
|
-
|
182
|
-
end
|
183
9
|
end
|
184
10
|
end
|
metadata
CHANGED
@@ -1,167 +1,167 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mirage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leon Davis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: childprocess
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: ptools
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.2.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.2.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: httparty
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: haml
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: hashie
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: jeweler
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: sinatra-contrib
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: jruby-openssl
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
description: Mirage aids testing of your applications by hosting mock responses so
|
@@ -190,10 +190,12 @@ files:
|
|
190
190
|
- lib/mirage/client/template/model/common_methods.rb
|
191
191
|
- lib/mirage/client/template/model/instance_methods.rb
|
192
192
|
- lib/mirage/client/templates.rb
|
193
|
+
- lib/mirage/hashie/mash_ext.rb
|
193
194
|
- lib/mirage/wait_methods.rb
|
194
195
|
- mirage_server.rb
|
195
196
|
- server/app.rb
|
196
197
|
- server/binary_data_checker.rb
|
198
|
+
- server/errors.rb
|
197
199
|
- server/extensions/hash.rb
|
198
200
|
- server/extensions/object.rb
|
199
201
|
- server/helpers.rb
|
@@ -201,6 +203,13 @@ files:
|
|
201
203
|
- server/helpers/template_requirements.rb
|
202
204
|
- server/mock_response.rb
|
203
205
|
- server/mock_response_set.rb
|
206
|
+
- server/routes.rb
|
207
|
+
- server/routes/backup.rb
|
208
|
+
- server/routes/defaults.rb
|
209
|
+
- server/routes/pid.rb
|
210
|
+
- server/routes/requests.rb
|
211
|
+
- server/routes/responses.rb
|
212
|
+
- server/routes/templates.rb
|
204
213
|
- server/server.rb
|
205
214
|
- views/index.haml
|
206
215
|
- views/response.haml
|
@@ -208,38 +217,31 @@ homepage: https://github.com/lashd/mirage
|
|
208
217
|
licenses:
|
209
218
|
- MIT
|
210
219
|
metadata: {}
|
211
|
-
post_install_message:
|
220
|
+
post_install_message: |2
|
212
221
|
|
213
222
|
===============================================================================
|
214
|
-
|
215
223
|
Mirage v3:
|
216
224
|
|
217
|
-
|
218
225
|
Mirage has just gone up a major version from 2 to 3. If your project uses
|
219
|
-
|
220
226
|
a previous version take a look at https://github.com/lashd/mirage to see
|
221
|
-
|
222
|
-
what''s changed
|
223
|
-
|
227
|
+
what's changed
|
224
228
|
===============================================================================
|
225
|
-
|
226
|
-
'
|
227
229
|
rdoc_options: []
|
228
230
|
require_paths:
|
229
231
|
- lib
|
230
232
|
required_ruby_version: !ruby/object:Gem::Requirement
|
231
233
|
requirements:
|
232
|
-
- -
|
234
|
+
- - ">="
|
233
235
|
- !ruby/object:Gem::Version
|
234
236
|
version: '0'
|
235
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
238
|
requirements:
|
237
|
-
- -
|
239
|
+
- - ">"
|
238
240
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
241
|
+
version: 1.3.1
|
240
242
|
requirements: []
|
241
243
|
rubyforge_project:
|
242
|
-
rubygems_version: 2.
|
244
|
+
rubygems_version: 2.6.11
|
243
245
|
signing_key:
|
244
246
|
specification_version: 4
|
245
247
|
summary: Mirage is a easy mock server for testing your applications
|