lurker 0.6.8 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.hound.yml +4 -78
- data/.jshintrc +33 -0
- data/.rspec +1 -2
- data/.rubocop.yml +0 -1
- data/.travis.yml +30 -19
- data/Gemfile +0 -33
- data/README.md +32 -53
- data/Rakefile +3 -3
- data/cucumber.yml +1 -2
- data/features/atom_persistent_within_the_same_type.feature +4 -4
- data/features/controller_nested_schema_scaffolding.feature +7 -10
- data/features/controller_schema_scaffolding.feature +1 -3
- data/features/dereferencing_through_inlining.feature +1 -3
- data/features/html_generation.feature +26 -4
- data/features/minitest.feature +3 -8
- data/features/multidomain_support.feature +6 -10
- data/features/multitype_request_support.feature +1 -3
- data/features/partials.feature +3 -8
- data/features/request_nested_schema_scaffolding.feature +0 -2
- data/features/request_schema_scaffolding.feature +0 -2
- data/features/schema_suffixes.feature +2 -18
- data/features/schema_updating_within_test_suite.feature +2 -6
- data/features/step_definitions/additional_cli_steps.rb +16 -12
- data/features/support/env.rb +50 -10
- data/features/test_endpoint.feature +2 -9
- data/gemfiles/rails_4.gemfile +14 -0
- data/gemfiles/rails_5.gemfile +10 -0
- data/gemfiles/rails_6.gemfile +10 -0
- data/lib/lurker.rb +9 -2
- data/lib/lurker/cli.rb +148 -128
- data/lib/lurker/endpoint.rb +11 -7
- data/lib/lurker/form_builder.rb +22 -31
- data/lib/lurker/json/concerns/validatable.rb +5 -1
- data/lib/lurker/json/parser.rb +1 -1
- data/lib/lurker/json/schema.rb +19 -6
- data/lib/lurker/json/{writter.rb → writer.rb} +2 -2
- data/lib/lurker/presenters/base_presenter.rb +10 -34
- data/lib/lurker/presenters/endpoint_presenter.rb +19 -8
- data/lib/lurker/presenters/schema_presenter.rb +6 -5
- data/lib/lurker/presenters/service_presenter.rb +41 -7
- data/lib/lurker/rendering_controller.rb +14 -7
- data/lib/lurker/service.rb +27 -11
- data/lib/lurker/spec_helper/rspec.rb +0 -4
- data/lib/lurker/spy.rb +3 -1
- data/lib/lurker/templates/documentation.md.tt +1 -0
- data/lib/lurker/templates/javascripts/lurker.js +133 -91
- data/lib/lurker/templates/layouts/_sidemenu.html.erb +2 -2
- data/lib/lurker/templates/layouts/application.html.erb +54 -57
- data/lib/lurker/templates/layouts/print.html.erb +31 -0
- data/lib/lurker/templates/lurker/rendering/_endpoint.html.erb +37 -0
- data/lib/lurker/templates/lurker/rendering/_param_form_element.html.erb +1 -1
- data/lib/lurker/templates/lurker/rendering/_service.html.erb +7 -0
- data/lib/lurker/templates/lurker/rendering/_submit_form.html.erb +77 -73
- data/lib/lurker/templates/lurker/rendering/all.html.erb +5 -0
- data/lib/lurker/templates/lurker/rendering/index.html.erb +1 -10
- data/lib/lurker/templates/lurker/rendering/show.html.erb +1 -37
- data/lib/lurker/templates/public/application.css +6 -2
- data/lib/lurker/templates/public/application.js +13 -13
- data/lib/lurker/templates/stylesheets/application.scss +3 -0
- data/lib/lurker/version.rb +1 -1
- data/lurker.gemspec +31 -33
- data/spec/spec_helper.rb +0 -1
- data/tasks/build.rake +12 -8
- data/tasks/generate.rake +44 -17
- data/templates/Dockerfile +26 -0
- data/templates/generate_stuff.rb +59 -26
- data/templates/lurker_app.rb +27 -48
- data/templates/rails4_ruby26_thread_error_fix.rb +20 -0
- metadata +149 -106
- checksums.yaml.gz.sig +0 -2
- data.tar.gz.sig +0 -3
- data/Appraisals +0 -20
- data/gemfiles/rails_32.gemfile +0 -27
- data/gemfiles/rails_40.gemfile +0 -27
- data/gemfiles/rails_41.gemfile +0 -27
- data/gemfiles/rails_42.gemfile +0 -27
- data/lib/lurker/templates/lurker/rendering/_param_form_legend.html.erb +0 -1
- data/lib/lurker/templates/meta_service.md.erb +0 -20
- data/lib/lurker/validation_error.rb +0 -4
- data/templates/rails32_http_patch_support.rb +0 -125
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 74bcb914a737099b70ce82f674ad54cfa5c0f1e47745a07f0329d2b681023ebb
|
4
|
+
data.tar.gz: 227765d414c360ae6b1e1312d0c5234bf6e6f30b8d09079b347dcbf8c80e90cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90c753d8f6934b63fcff5a9abf62e17e71a1d578d93a9a774cccfa30186d8437f8c40d6adbcda8c24a5bce5105e3c75274292252626193b05a8c6985b5b1ea3f
|
7
|
+
data.tar.gz: 32e85f3c317c41425983bca85a6dd7a53476c1ecb0647897b6897a89f8047fa0419ebd5822f2cdf377d7216b23864ef5178c22f539c5a6e64ab831e8224c0088
|
data/.hound.yml
CHANGED
@@ -1,80 +1,6 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
- 'tmp/**/*'
|
4
|
-
- 'templates/rails32_http_patch_support.rb'
|
1
|
+
ruby:
|
2
|
+
config_file: .rubocop.yml
|
5
3
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
StringLiterals:
|
10
|
-
Enabled: false
|
11
|
-
|
12
|
-
SignalException:
|
13
|
-
Enabled: false
|
14
|
-
|
15
|
-
AlignParameters:
|
16
|
-
Enabled: false
|
17
|
-
|
18
|
-
MultilineTernaryOperator:
|
19
|
-
Enabled: false
|
20
|
-
|
21
|
-
LineLength:
|
22
|
-
Enabled: false
|
23
|
-
|
24
|
-
RedundantSelf:
|
25
|
-
Enabled: false
|
26
|
-
|
27
|
-
GuardClause:
|
28
|
-
Enabled: false
|
29
|
-
|
30
|
-
Next:
|
31
|
-
Enabled: false
|
32
|
-
|
33
|
-
SpaceAroundEqualsInParameterDefault:
|
34
|
-
Enabled: false
|
35
|
-
|
36
|
-
AssignmentInCondition:
|
37
|
-
Enabled: false
|
38
|
-
|
39
|
-
Documentation:
|
40
|
-
Enabled: false
|
41
|
-
|
42
|
-
HashSyntax:
|
43
|
-
Enabled: false
|
44
|
-
|
45
|
-
PercentLiteralDelimiters:
|
46
|
-
Enabled: false
|
47
|
-
|
48
|
-
UnneededPercentQ:
|
49
|
-
Enabled: false
|
50
|
-
|
51
|
-
Blocks:
|
52
|
-
Enabled: false
|
53
|
-
|
54
|
-
DoubleNegation:
|
55
|
-
Enabled: false
|
56
|
-
|
57
|
-
CaseEquality:
|
58
|
-
Enabled: false
|
59
|
-
|
60
|
-
SpecialGlobalVars:
|
61
|
-
Enabled: false
|
62
|
-
|
63
|
-
UnusedMethodArgument:
|
64
|
-
Enabled: false
|
65
|
-
|
66
|
-
UnusedBlockArgument:
|
67
|
-
Enabled: false
|
68
|
-
|
69
|
-
CollectionMethods:
|
70
|
-
Enabled: false
|
71
|
-
|
72
|
-
TrivialAccessors:
|
73
|
-
Enabled: false
|
74
|
-
|
75
|
-
IndentationWidth:
|
76
|
-
Enabled: false
|
77
|
-
|
78
|
-
IndentHash:
|
79
|
-
Enabled: false
|
4
|
+
javascript:
|
5
|
+
config_file: .jshintrc
|
80
6
|
|
data/.jshintrc
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"asi": false,
|
3
|
+
"bitwise": true,
|
4
|
+
"browser": true,
|
5
|
+
"camelcase": true,
|
6
|
+
"curly": true,
|
7
|
+
"forin": true,
|
8
|
+
"immed": true,
|
9
|
+
"latedef": "nofunc",
|
10
|
+
"maxlen": 120,
|
11
|
+
"newcap": true,
|
12
|
+
"noarg": true,
|
13
|
+
"noempty": true,
|
14
|
+
"nonew": true,
|
15
|
+
"predef": [
|
16
|
+
"$",
|
17
|
+
"jQuery",
|
18
|
+
|
19
|
+
"jasmine",
|
20
|
+
"beforeEach",
|
21
|
+
"describe",
|
22
|
+
"expect",
|
23
|
+
"it",
|
24
|
+
|
25
|
+
"angular",
|
26
|
+
"inject",
|
27
|
+
"module"
|
28
|
+
],
|
29
|
+
"quotmark": false,
|
30
|
+
"trailing": true,
|
31
|
+
"undef": true,
|
32
|
+
"unused": true
|
33
|
+
}
|
data/.rspec
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
--
|
2
|
-
--format Fuubar
|
1
|
+
--color
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
@@ -1,20 +1,31 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
-
|
7
|
-
|
8
|
-
|
9
|
-
rvm
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
2
|
+
dist: xenial
|
3
|
+
group: dev
|
4
|
+
cache: bundler
|
5
|
+
before_install:
|
6
|
+
- if [ $BUNDLER_VERSION ]; then
|
7
|
+
rm -f $(which bundle);
|
8
|
+
rvm @global do gem uninstall bundler --executables --force;
|
9
|
+
rvm @global do gem install bundler --force -v $BUNDLER_VERSION;
|
10
|
+
else
|
11
|
+
gem install bundler --no-document;
|
12
|
+
fi
|
13
|
+
services:
|
14
|
+
- postgresql
|
15
|
+
env:
|
16
|
+
- CUCUMBER_PUBLISH_QUIET=true
|
17
|
+
jobs:
|
18
|
+
fast_finish: true
|
19
|
+
include:
|
20
|
+
- rvm: 2.6.5
|
21
|
+
env: BUNDLER_VERSION=1.17.3 CUCUMBER_PUBLISH_QUIET=true
|
22
|
+
gemfile: gemfiles/rails_4.gemfile
|
23
|
+
- rvm: 2.6.5
|
24
|
+
gemfile: gemfiles/rails_5.gemfile
|
25
|
+
- rvm: 2.6.5
|
26
|
+
gemfile: gemfiles/rails_6.gemfile
|
27
|
+
- rvm: 2.7.0
|
28
|
+
gemfile: gemfiles/rails_5.gemfile
|
29
|
+
- rvm: 2.7.0
|
30
|
+
gemfile: gemfiles/rails_6.gemfile
|
31
|
+
|
data/Gemfile
CHANGED
@@ -1,35 +1,2 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
gemspec
|
3
|
-
|
4
|
-
group :development do
|
5
|
-
# tools
|
6
|
-
gem 'pry-byebug', platforms: [:mri_20, :mri_21, :mri_22]
|
7
|
-
gem 'pry-debugger', platforms: :mri_19
|
8
|
-
gem 'pry-stack_explorer', platform: :mri
|
9
|
-
gem 'pry-session', platform: :mri
|
10
|
-
# rspec --format fuubar
|
11
|
-
gem 'fuubar'
|
12
|
-
# cucumber --format fuubar
|
13
|
-
gem 'fuubar-cucumber'
|
14
|
-
gem 'selenium-webdriver'
|
15
|
-
|
16
|
-
# deploy site
|
17
|
-
gem 'highline'
|
18
|
-
# gem 'coderay', path: '../coderay'
|
19
|
-
|
20
|
-
# multiple rails versions support
|
21
|
-
gem 'appraisal', github: 'razum2um/appraisal', branch: 'master'
|
22
|
-
|
23
|
-
# build template static
|
24
|
-
# run `rake assets:precompile`
|
25
|
-
# to get bundled application.(js|css)
|
26
|
-
gem 'sprockets'
|
27
|
-
gem 'uglifier'
|
28
|
-
gem 'sass-rails'
|
29
|
-
gem 'coffee-rails'
|
30
|
-
gem 'bootstrap-sass', '~> 3.3.3'
|
31
|
-
gem 'jquery-rails'
|
32
|
-
gem 'remotipart'
|
33
|
-
gem 'launchy'
|
34
|
-
end
|
35
|
-
|
data/README.md
CHANGED
@@ -3,29 +3,12 @@
|
|
3
3
|
<img align="right" width="94" height="71" src="https://cdn.rawgit.com/razum2um/lurker/master/lurker-bw.svg">
|
4
4
|
|
5
5
|
Generates API schemas, validates code against them and creates a handy web interface for testing the API.
|
6
|
-
|
6
|
+
Tested on on Rails 4, 5, 6 and Ruby >= 2.6
|
7
7
|
|
8
8
|
[![Gem Version][GV img]][Gem Version]
|
9
9
|
[![Build Status][BS img]][Build Status]
|
10
10
|
[![Dependency Status][DS img]][Dependency Status]
|
11
11
|
|
12
|
-
## Installation
|
13
|
-
|
14
|
-
Add my public key:
|
15
|
-
|
16
|
-
gem cert --add <(curl -Ls https://raw.github.com/razum2um/lurker/master/certs/razum2um.pem)
|
17
|
-
|
18
|
-
$ gem install lurker # without key
|
19
|
-
$ gem install lurker -P HighSecurity # secure, with key added
|
20
|
-
|
21
|
-
Or this line to your application's Gemfile:
|
22
|
-
|
23
|
-
gem 'lurker'
|
24
|
-
|
25
|
-
Inject into `test_helper.rb` or `spec_helper.rb`:
|
26
|
-
|
27
|
-
require 'lurker/spec_helper'
|
28
|
-
|
29
12
|
## Usage
|
30
13
|
|
31
14
|
Wrap your integration test code, which does request like this
|
@@ -45,6 +28,11 @@ but add `:lurker` mark (like documented [controller example][controler_spec_exam
|
|
45
28
|
get "/api/v1/users.json"
|
46
29
|
end
|
47
30
|
|
31
|
+
NOTE: If you use `rspec-rails`, it should be required first
|
32
|
+
|
33
|
+
require 'rspec/rails'
|
34
|
+
require 'lurker/spec_helper'
|
35
|
+
|
48
36
|
## Minitest usage
|
49
37
|
|
50
38
|
You can use [minitest-around][minitest_around] to wrap your test classes like this:
|
@@ -92,6 +80,13 @@ The generation of live-documentation is pretty simple:
|
|
92
80
|
|
93
81
|
For different document root or serving URL prefix use `-o` and `-u` options accordingly.
|
94
82
|
|
83
|
+
If you want to provide additional documentation for your API (and you probably should),
|
84
|
+
you can use separate Markdown files in the schema folder. To generate documentation
|
85
|
+
stubs for the current schema:
|
86
|
+
|
87
|
+
bin/lurker init_docs # generate documentation stubs for the current schema
|
88
|
+
|
89
|
+
|
95
90
|
Let's run your `rails s` and visit [http://localhost:3000/lurker/](http://localhost:3000/lurker/)
|
96
91
|
(or see [demo][demo_app2] for example)
|
97
92
|
|
@@ -103,9 +98,10 @@ You can run this to get the demo running locally:
|
|
103
98
|
|
104
99
|
git clone https://github.com/razum2um/lurker.git
|
105
100
|
cd lurker
|
106
|
-
|
107
|
-
bundle
|
108
|
-
|
101
|
+
export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile
|
102
|
+
bundle install
|
103
|
+
rake build_example_docs
|
104
|
+
cd tmp/lurker_app_rails_6
|
109
105
|
bin/rails s
|
110
106
|
|
111
107
|
Lurker supports multiple domains (usually `staging` and `production`) and can be deployed
|
@@ -114,8 +110,7 @@ statically everywhere as well as be served by the current `Rails` instance.
|
|
114
110
|
For example:
|
115
111
|
|
116
112
|
- [Github Pages][demo_app3] is deployed statically; no API endpoint
|
117
|
-
- [Custom domain][demo_app2]
|
118
|
-
- [Heroku][demo_app] HTML is served by unicorn as well as staging api endpoint in `Sandbox` mode
|
113
|
+
- [Custom domain][demo_app2] static + demo api production endpoint (in `Sandbox` mode)
|
119
114
|
|
120
115
|
## Features
|
121
116
|
|
@@ -137,6 +132,11 @@ For example:
|
|
137
132
|
- Builtin Rack middleware `Lurker::Server.to_rack` serves cached digested assets
|
138
133
|
- [RSpec][failed_spec_example] & [Minitest][minitest_example] support
|
139
134
|
|
135
|
+
## Related gems
|
136
|
+
|
137
|
+
- [Swarker](https://github.com/sponomarev/swarker) converts
|
138
|
+
Lurker schemas to [Swagger](http://swagger.io) schema
|
139
|
+
|
140
140
|
## Token authentication with sandbox
|
141
141
|
|
142
142
|
`Lurker::Sandbox` allows you to test services with token authentication:
|
@@ -161,17 +161,12 @@ are increasing notwithstanding ROLLBACK is called. As such:
|
|
161
161
|
[![Inline docs](http://inch-pages.github.io/github/razum2um/lurker.png)](http://inch-pages.github.io/github/razum2um/lurker)
|
162
162
|
[![Stories in Ready](https://badge.waffle.io/razum2um/lurker.png?label=ready&title=Ready&_=1)][waffle]
|
163
163
|
|
164
|
-
I try to use [Waffle][waffle] to develop this gem, if you want to help:
|
165
|
-
|
166
|
-
- look on "Ready" section
|
167
|
-
- drag an issue to "In Progress" and assign to yourself
|
168
|
-
- have fun!
|
169
|
-
|
170
164
|
**NOTE:** to get new version of bundled `bootstrap` or update JS/CSS,
|
171
165
|
don't touch files under `lib/lurker/templates/public` - they are autogenerated
|
172
166
|
and copied to static generated site while `bin/lurker convert`
|
173
167
|
|
174
|
-
|
168
|
+
export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile
|
169
|
+
rake assets:precompile # to build them
|
175
170
|
|
176
171
|
Don't commit `lib/lurker/templates/public/**/*` to avoid conflicts.
|
177
172
|
|
@@ -181,20 +176,6 @@ features in a way to generate **new** relevant `lurker/**/*.json.yml` files
|
|
181
176
|
|
182
177
|
**NOTE:** template partial `submit_form.html.erb` and it's partials is a big `jsx` script for `React`
|
183
178
|
so there are `<label htmlFor` instead of `<label for>` and `<div className` instead of `<div class`
|
184
|
-
|
185
|
-
### Different Rails versions
|
186
|
-
|
187
|
-
We use [`appraisal`](https://github.com/thoughtbot/appraisal) to test the lib with different Rails versions (from 3.2 up to 4.2):
|
188
|
-
|
189
|
-
# run this to install all gems for all the supported rails versions:
|
190
|
-
bundle exec appraisal install
|
191
|
-
|
192
|
-
# then prefix any rake command with `bundle exec appraisal` and rails version
|
193
|
-
bundle exec appraisal rails-42 rake build_example_docs
|
194
|
-
|
195
|
-
Test apps are getting generated into their's directory under `tmp/lurker_app...` prefix. They also use
|
196
|
-
separate databases for each rails version both dev & test env - all prefixed with `lurker_app`
|
197
|
-
|
198
179
|
### Demo app == Testing app
|
199
180
|
|
200
181
|
Currently, the testing application is using PostgreSQL because **the same** testing app is deployed to serve demo purposes.
|
@@ -202,14 +183,12 @@ Currently, the testing application is using PostgreSQL because **the same** test
|
|
202
183
|
This is also the reason not to delete anything under `lurker` directory between feature tests
|
203
184
|
and using **different** API endpoints of the testing app. To run cucumber with clean `lurker` & `public/lurker` directories run:
|
204
185
|
|
205
|
-
CLEAN=1 bundle exec
|
186
|
+
CLEAN=1 export BUNDLE_GEMFILE=gemfiles/rails_6.gemfile bundle exec cucumber features
|
206
187
|
|
207
188
|
Beware while writing your feature tests for PRs.
|
208
189
|
|
209
190
|
## Acknowledgments
|
210
191
|
|
211
|
-
[![Sponsored by Evil Martians](https://evilmartians.com/badges/sponsored-by-evil-martians.svg)](http://evilmartians.com/)
|
212
|
-
|
213
192
|
This gem is quite opinionated and relies on rails - if you're
|
214
193
|
interested in anything else, please take a look at [api_taster][api_taster] or [fdoc][fdoc],
|
215
194
|
This gem is heavily inspired by them. Thanks, @square & @fredwu
|
@@ -217,7 +196,8 @@ This gem is heavily inspired by them. Thanks, @square & @fredwu
|
|
217
196
|
Also thanks to
|
218
197
|
|
219
198
|
- [Andrey Deryabin][aderyabin] for advice
|
220
|
-
- [
|
199
|
+
- [Evil Martians][evil_martians] initial version sponsors
|
200
|
+
- [React.js][reactjs] for reactive UI
|
221
201
|
- [highlight.js][hljs] for syntax highlighting
|
222
202
|
|
223
203
|
[aderyabin]: https://twitter.com/aderyabin
|
@@ -230,7 +210,7 @@ Also thanks to
|
|
230
210
|
[json_schema]: http://json-schema.org/
|
231
211
|
[json_schema_example]: http://json-schema.org/example2.html
|
232
212
|
[json_schema_book]: http://spacetelescope.github.io/understanding-json-schema/
|
233
|
-
[evil_martians]:
|
213
|
+
[evil_martians]: https://evilmartians.com/
|
234
214
|
[rspec_controller_spec]: https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs
|
235
215
|
[rspec_request_spec]: https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec
|
236
216
|
[minitest_around]: https://github.com/splattael/minitest-around
|
@@ -244,10 +224,9 @@ Also thanks to
|
|
244
224
|
[suffixes_example]: https://www.relishapp.com/razum2um/lurker/docs/request-schema-suffixes
|
245
225
|
[minitest_example]: https://www.relishapp.com/razum2um/lurker/docs/minitest
|
246
226
|
|
247
|
-
[
|
248
|
-
[
|
249
|
-
[
|
250
|
-
[demo_live]: http://lurker.razum2um.me/lurker/api/v1/users-POST.html
|
227
|
+
[demo_app2]: https://lurker.razum2um.me
|
228
|
+
[demo_app3]: https://razum2um.github.io/lurker/
|
229
|
+
[demo_live]: https://lurker.razum2um.me/lurker/api/v1/users-POST.html
|
251
230
|
[pdf_example]: http://razum2um.github.io/lurker/lurker_demo_application.pdf
|
252
231
|
[partial_example_demo]: http://razum2um.github.io/lurker/api/v1/users/__user_id/repos-POST.html
|
253
232
|
|
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ RSpec::Core::RakeTask.new(:spec) do |t|
|
|
23
23
|
end
|
24
24
|
|
25
25
|
Cucumber::Rake::Task.new(:cucumber) do |t|
|
26
|
-
t.cucumber_opts = "features --format progress
|
26
|
+
t.cucumber_opts = "features --format progress"
|
27
27
|
end
|
28
28
|
|
29
29
|
task :default => ["clobber:coverage", :spec, :regenerate, :cucumber, 'coveralls:push']
|
@@ -32,8 +32,8 @@ desc 'releases gem & updates docs'
|
|
32
32
|
task :publish do
|
33
33
|
require 'lurker'
|
34
34
|
version = Lurker::VERSION
|
35
|
-
|
36
|
-
Bundler.
|
35
|
+
bundler_method = Bundler.respond_to?(:with_unbundled_env) ? :with_unbundled_env : :with_clean_env
|
36
|
+
Bundler.send(bundler_method) do
|
37
37
|
system "git tag v#{version}"
|
38
38
|
system "relish versions:add razum2um/lurker:#{version}"
|
39
39
|
system "relish push razum2um/lurker:#{version}"
|
data/cucumber.yml
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
default: --require features --format
|
2
|
-
wip: --require features --tags @wip
|
1
|
+
default: --require features --format progress
|
@@ -59,8 +59,6 @@ Feature: atom persistent within test suite
|
|
59
59
|
Scenario: json schema tests response parameters and keep atom unchanged using "users/update"
|
60
60
|
Given a file named "spec/controllers/api/v2/users_controller_spec.rb" with:
|
61
61
|
"""ruby
|
62
|
-
require "spec_helper"
|
63
|
-
|
64
62
|
describe Api::V2::UsersController, :lurker do
|
65
63
|
render_views
|
66
64
|
|
@@ -69,13 +67,15 @@ Feature: atom persistent within test suite
|
|
69
67
|
end
|
70
68
|
|
71
69
|
it "updates a user surname as string" do
|
72
|
-
|
70
|
+
puts Thread.list.to_a.inspect
|
71
|
+
|
72
|
+
patch :update, params: { id: user.id, user: { surname: 'Marley' } }
|
73
73
|
expect(response).to be_success
|
74
74
|
end
|
75
75
|
end
|
76
76
|
"""
|
77
77
|
|
78
|
-
When I run `bin/rspec spec/controllers/api/v2/users_controller_spec.rb`
|
78
|
+
When I run `bin/rspec -b spec/controllers/api/v2/users_controller_spec.rb`
|
79
79
|
Then the example should pass
|
80
80
|
Then a file named "lurker/api/v2/users/__id-PATCH.json.yml" should exist
|
81
81
|
Then the file "lurker/api/v2/users/__id-PATCH.json.yml" should contain exactly:
|