rest-assured 0.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.
Files changed (67) hide show
  1. data/.gitignore +7 -0
  2. data/Gemfile +17 -0
  3. data/LICENSE +22 -0
  4. data/README.markdown +78 -0
  5. data/Rakefile +4 -0
  6. data/bin/console +12 -0
  7. data/bin/rest-assured +28 -0
  8. data/cucumber.yml +3 -0
  9. data/db/migrate/20110620161740_add_fixtures.rb +12 -0
  10. data/db/migrate/20110625155332_add_redirects_table.rb +12 -0
  11. data/db/migrate/20110709150645_add_description_to_fixtures.rb +9 -0
  12. data/db/migrate/20110807222522_add_active_bit_to_fixtures.rb +9 -0
  13. data/db/migrate/20110818155555_add_position_to_redirects.rb +9 -0
  14. data/db/migrate/20110823132023_add_method_to_fixtures.rb +9 -0
  15. data/db/migrate/20110912162948_rename_url_to_fullpath.rb +9 -0
  16. data/db/migrate/20110912163705_rename_fixtures_to_doubles.rb +9 -0
  17. data/features/doubles_via_api.feature +50 -0
  18. data/features/doubles_via_ui.feature +66 -0
  19. data/features/persistence.feature +24 -0
  20. data/features/redirect_rules_via_api.feature +29 -0
  21. data/features/redirect_rules_via_ui.feature +68 -0
  22. data/features/step_definitions/doubles_steps.rb +143 -0
  23. data/features/step_definitions/persistence_steps.rb +13 -0
  24. data/features/step_definitions/redirect_rules_steps.rb +64 -0
  25. data/features/step_definitions/support/numeric_transforms.rb +3 -0
  26. data/features/support/env.rb +71 -0
  27. data/lib/rest-assured.rb +66 -0
  28. data/lib/rest-assured/config.rb +11 -0
  29. data/lib/rest-assured/init.rb +12 -0
  30. data/lib/rest-assured/models/double.rb +30 -0
  31. data/lib/rest-assured/models/redirect.rb +37 -0
  32. data/lib/rest-assured/routes/double.rb +77 -0
  33. data/lib/rest-assured/routes/redirect.rb +71 -0
  34. data/lib/rest-assured/version.rb +3 -0
  35. data/lib/sinatra/partials.rb +18 -0
  36. data/public/css/grid.inuit.css +76 -0
  37. data/public/css/inuit.css +904 -0
  38. data/public/css/jquery.jgrowl.css +132 -0
  39. data/public/css/style.css +88 -0
  40. data/public/img/css/12-grid-720.png +0 -0
  41. data/public/img/css/12-grid.png +0 -0
  42. data/public/img/css/baseline.gif +0 -0
  43. data/public/img/css/grid-720.png +0 -0
  44. data/public/img/css/grid.png +0 -0
  45. data/public/img/css/icons/error.png +0 -0
  46. data/public/img/css/icons/info.png +0 -0
  47. data/public/img/css/icons/success.png +0 -0
  48. data/public/img/css/icons/warning.png +0 -0
  49. data/public/javascript/application.js +12 -0
  50. data/public/javascript/jquery.jgrowl_minimized.js +11 -0
  51. data/rest-assured.gemspec +36 -0
  52. data/spec/functional/double_routes_spec.rb +117 -0
  53. data/spec/functional/redirect_routes_spec.rb +108 -0
  54. data/spec/models/double_spec.rb +73 -0
  55. data/spec/models/redirect_spec.rb +38 -0
  56. data/spec/spec_helper.rb +47 -0
  57. data/views/base.scss +11 -0
  58. data/views/doubles/_form.haml +16 -0
  59. data/views/doubles/edit.haml +4 -0
  60. data/views/doubles/index.haml +41 -0
  61. data/views/doubles/new.haml +3 -0
  62. data/views/layout.haml +25 -0
  63. data/views/redirects/_form.haml +11 -0
  64. data/views/redirects/edit.haml +4 -0
  65. data/views/redirects/index.haml +33 -0
  66. data/views/redirects/new.haml +3 -0
  67. metadata +250 -0
@@ -0,0 +1,73 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe Double do
4
+ let :valid_params do
5
+ { :fullpath => '/some/api', :content => 'some content', :method => 'GET' }
6
+ end
7
+
8
+ it { should validate_presence_of(:fullpath) }
9
+ it { should validate_presence_of(:content) }
10
+ #it { should ensure_inclusion_of(:method).in(Double::METHODS) }
11
+
12
+ it "defaults method to GET" do
13
+ f = Double.create valid_params.except(:method)
14
+ f.method.should == 'GET'
15
+ end
16
+
17
+ it "makes double active by default" do
18
+ f = Double.create valid_params.except(:active)
19
+ f.active.should be true
20
+ end
21
+
22
+ describe 'when created' do
23
+ it "toggles active double for the same fullpath" do
24
+ f1 = Double.create valid_params
25
+ f2 = Double.create valid_params
26
+ f3 = Double.create valid_params.merge(:fullpath => '/some/other/api')
27
+
28
+ f1.reload.active.should be false
29
+ f3.reload.active.should be true
30
+ end
31
+ end
32
+
33
+ describe 'when saved' do
34
+ it "toggles active double for the same fullpath" do
35
+ f1 = Double.create valid_params
36
+ f2 = Double.create valid_params
37
+ f3 = Double.create valid_params.merge(:fullpath => '/some/other/api')
38
+
39
+ f1.active = true
40
+ f1.save
41
+
42
+ f2.reload.active.should be false
43
+ f3.reload.active.should be true
44
+ end
45
+
46
+ it "makes other doubles inactive only when active bit set to true" do
47
+ f1 = Double.create valid_params
48
+ f2 = Double.create valid_params
49
+ f3 = Double.create valid_params.merge(:fullpath => '/some/other/api')
50
+
51
+ f1.reload.save
52
+ f2.reload.save
53
+
54
+ f1.reload.active.should be false
55
+ f2.reload.active.should be true
56
+ f3.reload.active.should be true
57
+ end
58
+ end
59
+
60
+ describe 'when destroying' do
61
+ context 'active double' do
62
+ it "makes another double for the same fullpath active" do
63
+ f1 = Double.create valid_params
64
+ f2 = Double.create valid_params
65
+ f3 = Double.create valid_params.merge(:fullpath => '/some/other/api')
66
+
67
+ f2.destroy
68
+ f1.reload.active.should be true
69
+ f3.reload.active.should be true
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,38 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+
3
+ describe Redirect do
4
+ # this is solely to get through 'Can't find first XXX' shoulda crap
5
+ #before do
6
+ #Redirect.create :pattern => 'sdfsdf', :to => 'sdfsffdf'
7
+ #end
8
+
9
+ it { should validate_presence_of(:pattern) }
10
+ it { should validate_presence_of(:to) }
11
+ # commented out since it doesn't work with :allow_blank => true
12
+ #it { should validate_uniqueness_of(:position) }
13
+
14
+ it 'assigns incremental position on create' do
15
+ r1 = Redirect.create :pattern => '.*', :to => 'someurl'
16
+ r1.position.should == 0
17
+
18
+ r2 = Redirect.create :pattern => '.*', :to => 'someurl'
19
+ r2.position.should == 1
20
+
21
+ r2.position = 4
22
+ r2.save
23
+
24
+ r3 = Redirect.create :pattern => '.*', :to => 'someurl'
25
+ r3.position.should == 5
26
+ end
27
+
28
+ it 'updates order (with which redirects picked up for matching request)' do
29
+ r1 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 0
30
+ r2 = Redirect.create :pattern => '.*', :to => 'somewhere', :position => 1
31
+
32
+ Redirect.update_order([r2.id, r1.id]).should be true
33
+ r1.reload.position.should == 1
34
+ r2.reload.position.should == 0
35
+
36
+ Redirect.update_order([nil, 34]).should == false
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'rubygems'
4
+ require File.expand_path('../../lib/rest-assured', __FILE__)
5
+ require 'rspec'
6
+ require 'shoulda-matchers'
7
+ require 'capybara/rspec'
8
+ require 'rack/test'
9
+ require 'database_cleaner'
10
+
11
+ Capybara.app = RestAssured::Application
12
+
13
+ def app
14
+ RestAssured::Application
15
+ end
16
+
17
+ DatabaseCleaner.strategy = :truncation
18
+
19
+ module XhrHelpers
20
+ def xhr(path, params = {})
21
+ verb = params.delete(:as) || :get
22
+ send(verb,path, params, "HTTP_X_REQUESTED_WITH" => "XMLHttpRequest")
23
+ end
24
+ alias_method :ajax, :xhr
25
+ end
26
+
27
+ RSpec.configure do |c|
28
+ c.include Capybara::DSL
29
+ c.include Rack::Test::Methods
30
+ c.include XhrHelpers
31
+
32
+ c.before(:each) do
33
+ DatabaseCleaner.start
34
+ end
35
+
36
+ c.after(:each) do
37
+ DatabaseCleaner.clean
38
+ end
39
+
40
+ c.before(:each, :ui => true) do
41
+ header 'User-Agent', 'Firefox'
42
+ end
43
+
44
+ c.before(:each, :ui => false) do
45
+ header 'User-Agent', nil
46
+ end
47
+ end
@@ -0,0 +1,11 @@
1
+ .wide {
2
+ width: 100%;
3
+ }
4
+
5
+ .white-space-nowrap {
6
+ white-space: nowrap;
7
+ }
8
+
9
+ .nav {
10
+ font-size: 1.4em;
11
+ }
@@ -0,0 +1,16 @@
1
+ %p
2
+ %label{:for => 'double_fullpath'} Request fullpath*
3
+ %input.wide#double_fullpath{:type => 'text', :name => 'double[fullpath]', :value => @double.fullpath}
4
+
5
+ %p
6
+ %label{:for => 'double_content'} Content*
7
+ %textarea.wide#double_content{:name => 'double[content]', :rows => 10}= @double.content
8
+
9
+ %p
10
+ %label{:for => 'double_description'} Description
11
+ %textarea.wide#double_description{:name => 'double[description]', :rows => 3}= @double.description
12
+
13
+ %p
14
+ %input{:type => 'submit', :value => 'Save'}
15
+ |
16
+ %a{:href => 'javascript:history.back()'} back
@@ -0,0 +1,4 @@
1
+ %h2 Edit Double
2
+ %form{:action => "/doubles/#{@double.id}", :method => 'post'}
3
+ %input{:type => 'hidden', :name => '_method', :value => 'put'}
4
+ = partial :'doubles/form'
@@ -0,0 +1,41 @@
1
+ %h2 Doubles index
2
+ %a= link_to 'New double', '/doubles/new'
3
+ %table
4
+ %thead
5
+ %tr
6
+ %th Request fullpath
7
+ %th Description
8
+ %th Active?
9
+ %th  
10
+ %tbody
11
+ - @doubles.group_by {|f| f.fullpath}.each do |fullpath, fs|
12
+ - fs.each_with_index do |f, i|
13
+ %tr{:id => "double_row_#{f.id}"}
14
+ - if i == 0
15
+ %td{:rowspan => fs.size}= fullpath
16
+ %td= f.description
17
+ %td.label.text-center
18
+ %input.active-double-toggle{:type => 'radio', :name => fullpath, :checked => f.active, :data => { :double_id => f.id }}
19
+ %td.edit-link.text-center.white-space-nowrap
20
+ = link_to 'Edit', "/doubles/#{f.id}/edit"
21
+ |
22
+ %a.delete_link{:href => "/doubles/#{f.id}"} Delete
23
+
24
+ :javascript
25
+ $(function() {
26
+ $('td.label').click(function() {
27
+ $('input', this).click();
28
+ });
29
+
30
+ $('input.active-double-toggle').click(function(e) {
31
+ e.stopPropagation();
32
+
33
+ $.post(
34
+ '/doubles/' + this.getAttribute('data-double_id'),
35
+ { _method: 'put', active: 't' },
36
+ function(data) {
37
+ $.jGrowl(data);
38
+ }
39
+ );
40
+ });
41
+ });
@@ -0,0 +1,3 @@
1
+ %h2 New Double
2
+ %form{:action => '/doubles', :method => 'post'}
3
+ = partial :'doubles/form'
@@ -0,0 +1,25 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title= request.path_info[1..-1] + ' - REST assured'
5
+ = stylesheet_link_tag '/css/inuit.css'
6
+ = stylesheet_link_tag '/css/grid.inuit.css'
7
+ = stylesheet_link_tag '/css/base.css'
8
+ = stylesheet_link_tag '/css/jquery.jgrowl.css'
9
+ = stylesheet_link_tag 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/themes/base/jquery-ui.css'
10
+ = javascript_script_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'
11
+ = javascript_script_tag 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js'
12
+ = javascript_script_tag '/javascript/jquery.jgrowl_minimized.js'
13
+ = javascript_script_tag '/javascript/application.js'
14
+ %body.wrapper
15
+ %ul.nav
16
+ %li= link_to 'Doubles', '/doubles'
17
+ %li |
18
+ %li= link_to 'Redirects', '/redirects'
19
+
20
+ - if flash[:notice]
21
+ .message.success= flash[:notice]
22
+ - elsif flash[:error]
23
+ .message.error= flash[:error]
24
+
25
+ = yield
@@ -0,0 +1,11 @@
1
+ %p
2
+ %label{:for => 'redirect_pattern'} Pattern*
3
+ %input.wide#redirect_pattern{:type => 'text', :name => 'redirect[pattern]', :value => @redirect.pattern}
4
+ %p
5
+ %label{:for => 'redirect_to'} Redirect to*
6
+ %input.wide#redirect_to{:type => 'text', :name => 'redirect[to]', :value => @redirect.to}
7
+
8
+ %p
9
+ %input{:type => 'submit', :value => 'Save'}
10
+ |
11
+ %a{:href => 'javascript:history.back()'} back
@@ -0,0 +1,4 @@
1
+ %h2 Edit Redirect
2
+ %form{:action => "/redirects/#{@redirect.id}", :method => 'post'}
3
+ %input{:type => 'hidden', :name => '_method', :value => 'put'}
4
+ = partial :'redirects/form'
@@ -0,0 +1,33 @@
1
+ %h2 Redirects index
2
+ %a= link_to 'New redirect', '/redirects/new'
3
+ %table#redirects
4
+ %thead
5
+ %tr
6
+ %th D&D to reorder
7
+ %th Pattern
8
+ %th Redirect to
9
+ %th  
10
+ %tbody
11
+ - @redirects.each do |r|
12
+ %tr{:id => "redirect_#{r.id}"}
13
+ %td.text-center.handle
14
+ %span.ui-icon.ui-icon-arrowthick-2-n-s
15
+ %td= r.pattern
16
+ %td= r.to
17
+ %td.edit-link.text-center.white-space-nowrap
18
+ = link_to 'Edit', "/redirects/#{r.id}/edit"
19
+ |
20
+ %a.delete_link{:href => "/redirects/#{r.id}"} Delete
21
+
22
+ :javascript
23
+ $(function() {
24
+ $('#redirects tbody').sortable({
25
+ handle: 'td.handle',
26
+ cursors: 'crosshair',
27
+ stop: function() {
28
+ $.post('/redirects/reorder', $(this).sortable('serialize') + '&_method=put', function(data) {
29
+ $.jGrowl(data);
30
+ });
31
+ }
32
+ });
33
+ });
@@ -0,0 +1,3 @@
1
+ %h2 New Redirect
2
+ %form{:action => '/redirects', :method => 'post'}
3
+ = partial :'redirects/form'
metadata ADDED
@@ -0,0 +1,250 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rest-assured
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Artem Avetisyan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-13 00:00:00.000000000 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sinatra
17
+ requirement: &2156510480 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2156510480
26
+ - !ruby/object:Gem::Dependency
27
+ name: rack-flash
28
+ requirement: &2156509960 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2156509960
37
+ - !ruby/object:Gem::Dependency
38
+ name: haml
39
+ requirement: &2156509480 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *2156509480
48
+ - !ruby/object:Gem::Dependency
49
+ name: sass
50
+ requirement: &2156509060 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *2156509060
59
+ - !ruby/object:Gem::Dependency
60
+ name: sinatra-static-assets
61
+ requirement: &2156508480 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *2156508480
70
+ - !ruby/object:Gem::Dependency
71
+ name: thin
72
+ requirement: &2156508000 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: *2156508000
81
+ - !ruby/object:Gem::Dependency
82
+ name: activerecord
83
+ requirement: &2156507460 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 3.0.0
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: *2156507460
92
+ - !ruby/object:Gem::Dependency
93
+ name: sinatra-activerecord
94
+ requirement: &2156495140 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: *2156495140
103
+ - !ruby/object:Gem::Dependency
104
+ name: sqlite3
105
+ requirement: &2156494680 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: *2156494680
114
+ - !ruby/object:Gem::Dependency
115
+ name: rake
116
+ requirement: &2156494260 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: *2156494260
125
+ - !ruby/object:Gem::Dependency
126
+ name: meta_where
127
+ requirement: &2156493720 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: *2156493720
136
+ description:
137
+ email:
138
+ - artem.avetisyan@bbc.co.uk
139
+ executables:
140
+ - rest-assured
141
+ extensions: []
142
+ extra_rdoc_files: []
143
+ files:
144
+ - .gitignore
145
+ - Gemfile
146
+ - LICENSE
147
+ - README.markdown
148
+ - Rakefile
149
+ - bin/console
150
+ - bin/rest-assured
151
+ - cucumber.yml
152
+ - db/migrate/20110620161740_add_fixtures.rb
153
+ - db/migrate/20110625155332_add_redirects_table.rb
154
+ - db/migrate/20110709150645_add_description_to_fixtures.rb
155
+ - db/migrate/20110807222522_add_active_bit_to_fixtures.rb
156
+ - db/migrate/20110818155555_add_position_to_redirects.rb
157
+ - db/migrate/20110823132023_add_method_to_fixtures.rb
158
+ - db/migrate/20110912162948_rename_url_to_fullpath.rb
159
+ - db/migrate/20110912163705_rename_fixtures_to_doubles.rb
160
+ - features/doubles_via_api.feature
161
+ - features/doubles_via_ui.feature
162
+ - features/persistence.feature
163
+ - features/redirect_rules_via_api.feature
164
+ - features/redirect_rules_via_ui.feature
165
+ - features/step_definitions/doubles_steps.rb
166
+ - features/step_definitions/persistence_steps.rb
167
+ - features/step_definitions/redirect_rules_steps.rb
168
+ - features/step_definitions/support/numeric_transforms.rb
169
+ - features/support/env.rb
170
+ - lib/rest-assured.rb
171
+ - lib/rest-assured/config.rb
172
+ - lib/rest-assured/init.rb
173
+ - lib/rest-assured/models/double.rb
174
+ - lib/rest-assured/models/redirect.rb
175
+ - lib/rest-assured/routes/double.rb
176
+ - lib/rest-assured/routes/redirect.rb
177
+ - lib/rest-assured/version.rb
178
+ - lib/sinatra/partials.rb
179
+ - public/css/grid.inuit.css
180
+ - public/css/inuit.css
181
+ - public/css/jquery.jgrowl.css
182
+ - public/css/style.css
183
+ - public/img/css/12-grid-720.png
184
+ - public/img/css/12-grid.png
185
+ - public/img/css/baseline.gif
186
+ - public/img/css/grid-720.png
187
+ - public/img/css/grid.png
188
+ - public/img/css/icons/error.png
189
+ - public/img/css/icons/info.png
190
+ - public/img/css/icons/success.png
191
+ - public/img/css/icons/warning.png
192
+ - public/javascript/application.js
193
+ - public/javascript/jquery.jgrowl_minimized.js
194
+ - rest-assured.gemspec
195
+ - spec/functional/double_routes_spec.rb
196
+ - spec/functional/redirect_routes_spec.rb
197
+ - spec/models/double_spec.rb
198
+ - spec/models/redirect_spec.rb
199
+ - spec/spec_helper.rb
200
+ - views/base.scss
201
+ - views/doubles/_form.haml
202
+ - views/doubles/edit.haml
203
+ - views/doubles/index.haml
204
+ - views/doubles/new.haml
205
+ - views/layout.haml
206
+ - views/redirects/_form.haml
207
+ - views/redirects/edit.haml
208
+ - views/redirects/index.haml
209
+ - views/redirects/new.haml
210
+ has_rdoc: true
211
+ homepage: https://github.com/BBC/rest-assured
212
+ licenses: []
213
+ post_install_message:
214
+ rdoc_options: []
215
+ require_paths:
216
+ - lib
217
+ required_ruby_version: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: 1.8.7
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ none: false
225
+ requirements:
226
+ - - ! '>='
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ requirements: []
230
+ rubyforge_project: rest-assured
231
+ rubygems_version: 1.6.2
232
+ signing_key:
233
+ specification_version: 3
234
+ summary: A tool for high level mocking/stubbing HTTP based REST services
235
+ test_files:
236
+ - features/doubles_via_api.feature
237
+ - features/doubles_via_ui.feature
238
+ - features/persistence.feature
239
+ - features/redirect_rules_via_api.feature
240
+ - features/redirect_rules_via_ui.feature
241
+ - features/step_definitions/doubles_steps.rb
242
+ - features/step_definitions/persistence_steps.rb
243
+ - features/step_definitions/redirect_rules_steps.rb
244
+ - features/step_definitions/support/numeric_transforms.rb
245
+ - features/support/env.rb
246
+ - spec/functional/double_routes_spec.rb
247
+ - spec/functional/redirect_routes_spec.rb
248
+ - spec/models/double_spec.rb
249
+ - spec/models/redirect_spec.rb
250
+ - spec/spec_helper.rb