mirage 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,8 @@ Feature: Mirage's home page allows you to see what response are currently being
2
2
  From this page you can:
3
3
  - Peek at a responses content
4
4
  - Track the response to see if a request has been made to it
5
+
6
+ #TODO tests needed for displaying pattern and delay values
5
7
 
6
8
  Background: There are already a couple of responses hosted on he Mirage server
7
9
  Given I hit 'http://localhost:7001/mirage/set/greeting' with parameters:
data/lib/mirage/core.rb CHANGED
@@ -67,11 +67,11 @@ module Mirage
67
67
  @responses = {}
68
68
 
69
69
  RESPONSES.each do |name, responses|
70
- @responses[name]=responses.default unless responses.default.nil?
71
-
72
70
  responses.each do |pattern, response|
73
- pattern = pattern.is_a?(Regexp) ? pattern.source : pattern
74
- @responses["#{name}#{'/*' if response.default?}: #{pattern}"] = response
71
+ pattern = pattern.is_a?(Regexp) ? "pattern = #{pattern.source}" : ''
72
+ delay = response.delay > 0 ? "delay = #{response.delay}" : ''
73
+ pattern << ' ,' unless pattern.empty? || delay.empty?
74
+ @responses["#{name}#{'/*' if response.default?}: #{pattern} #{delay}"] = response
75
75
  end
76
76
  end
77
77
  end
@@ -79,8 +79,7 @@ module Mirage
79
79
  def peek response_id
80
80
  peeked_response = nil
81
81
  RESPONSES.values.each do |responses|
82
- peeked_response = responses[:default] if responses[:default] && responses[:default].response_id == response_id.to_i
83
- peeked_response = responses.values.find { |response| response.response_id == response_id.to_i } if peeked_response.nil?
82
+ peeked_response = responses.values.find { |response| response.response_id == response_id.to_i }
84
83
  break unless peeked_response.nil?
85
84
  end
86
85
  respond("Can not peek reponse, id:#{response_id} does not exist}", 404) unless peeked_response
@@ -89,7 +88,7 @@ module Mirage
89
88
 
90
89
  def set *args
91
90
  delay = (request['delay']||0)
92
- pattern = request['pattern'] ? /#{request['pattern']}/ : :default
91
+ pattern = request['pattern'] ? /#{request['pattern']}/ : :basic
93
92
  name = args.join('/')
94
93
  is_default = request['default'] == 'true'
95
94
 
@@ -173,8 +172,8 @@ module Mirage
173
172
 
174
173
  private
175
174
  def find_response(body, query_string, stored_responses)
176
- pattern_match = stored_responses.keys.find_all { |pattern| pattern != :default }.find { |pattern| body =~ pattern || query_string =~ pattern }
177
- record = pattern_match ? stored_responses[pattern_match] : stored_responses[:default]
175
+ pattern_match = stored_responses.keys.find_all { |pattern| pattern != :basic }.find { |pattern| body =~ pattern || query_string =~ pattern }
176
+ record = pattern_match ? stored_responses[pattern_match] : stored_responses[:basic]
178
177
  record
179
178
  end
180
179
 
@@ -9,8 +9,13 @@
9
9
  <body>
10
10
  <h1>Welcome to Mirage</h1>
11
11
 
12
- <p>Below are any responses you are currently hosting. Click the response itself to peek at it and click check to view the last request that triggered it. <br/>
13
- Note: if requests or responses contain xml, you will need to view page source to see it properly.</p>
12
+ <p>Below are any responses you are currently hosting. Click the response itself to peek at it and click 'track' to view the last request that triggered it.<br/>
13
+ <br/>
14
+ Patterns and delays are shown for responses that have them.<br/>
15
+ <br/>
16
+ Responses with '*' at the end are default responses. I.e. they will be returned, where appropriate, for requests to a sub endpoint if a response is not found at that level.<br/>
17
+ <br/>
18
+ <strong>Note:</strong> if requests or responses contain xml, you will need to view page source to see it properly.</p>
14
19
 
15
20
  <?r unless @responses.empty? ?>
16
21
  <table border="1" width='100%'>
data/mirage.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mirage'
3
- s.version = '1.0.1'
3
+ s.version = '1.0.2'
4
4
  s.authors = ["Leon Davis"]
5
5
  s.homepage = 'https://github.com/lashd/mirage'
6
6
  s.description = 'Mirage aids testing of your applications by hosting mock responses so that your applications do not have to talk to real endpoints. Its accessible via HTTP and has a RESTful interface.'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mirage
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.1
5
+ version: 1.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Leon Davis
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-29 00:00:00 +01:00
13
+ date: 2011-03-30 00:00:00 +01:00
14
14
  default_executable: mirage
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -144,7 +144,7 @@ licenses: []
144
144
 
145
145
  post_install_message: "\n\
146
146
  ===============================================================================\n\
147
- Thanks you for installing mirage-1.0.1. \n\n\
147
+ Thanks you for installing mirage-1.0.2. \n\n\
148
148
  Run Mirage with:\n\n\
149
149
  mirage start \n\n\
150
150
  For more information go to: https://github.com/lashd/mirage/wiki\n\
@@ -171,7 +171,7 @@ rubyforge_project:
171
171
  rubygems_version: 1.6.1
172
172
  signing_key:
173
173
  specification_version: 3
174
- summary: mirage-1.0.1
174
+ summary: mirage-1.0.2
175
175
  test_files:
176
176
  - features/client/clear.feature
177
177
  - features/client/get.feature