lurker 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.gitignore +1 -0
  5. data/Gemfile +1 -0
  6. data/README.md +35 -16
  7. data/Rakefile +71 -21
  8. data/features/README.md +1 -1
  9. data/features/{controller_specs/nested_schema_scaffolding.feature → controller_nested_schema_scaffolding.feature} +7 -3
  10. data/features/{controller_specs/schema_scaffolding.feature → controller_schema_scaffolding.feature} +13 -3
  11. data/features/{docs_generation/html_generation.feature → html_generation.feature} +3 -7
  12. data/features/{docs_generation/multidomain_support.feature → multidomain_support.feature} +1 -3
  13. data/features/{docs_generation/partials.feature → partials.feature} +0 -0
  14. data/features/{request_specs/nested_schema_scaffolding.feature → request_nested_schema_scaffolding.feature} +9 -3
  15. data/features/{request_specs/schema_scaffolding.feature → request_schema_scaffolding.feature} +11 -3
  16. data/features/{request_specs/schema_suffixes.feature → schema_suffixes.feature} +8 -27
  17. data/features/{controller_specs/test_endpoint.feature → test_endpoint.feature} +9 -17
  18. data/lib/lurker/cli.rb +20 -1
  19. data/lib/lurker/endpoint_scaffold.rb +4 -2
  20. data/lib/lurker/templates/javascripts/application.js +3 -1
  21. data/lib/lurker/templates/layouts/application.html.erb +15 -1
  22. data/lib/lurker/templates/public/application.css +2 -7440
  23. data/lib/lurker/templates/public/application.js +13 -44751
  24. data/lib/lurker/templates/stylesheets/application.css +3 -0
  25. data/lib/lurker/version.rb +1 -1
  26. data/lurker.gemspec +5 -4
  27. data/templates/generate_stuff.rb +23 -4
  28. data/templates/lurker_app.rb +3 -2
  29. metadata +34 -26
  30. metadata.gz.asc +7 -7
  31. data/features/controller_specs/readme.md +0 -4
  32. data/features/docs_generation/readme.md +0 -2
  33. data/features/request_specs/readme.md +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 952b043f8da8f4b196d52d6d24fb05aa4e1a5766
4
- data.tar.gz: 19afcf3e67b54a0536e071f36ff99a3f8b76083e
3
+ metadata.gz: ad859d0f48735e26b9982192d403652155d5b24c
4
+ data.tar.gz: 52923c3207cb795bd749a599ece81ba0d2ac0fc7
5
5
  SHA512:
6
- metadata.gz: 17062f274191d624db5bfd6c3cc953744abd7474d53aa8ef5355b2578eec769514618fd3f26ffceb42993d8cc419a61e280578d5976a1948cd26bc7e1b28dad8
7
- data.tar.gz: db85104a0f2e96a7a8a781ebbd672fb7493759d6ee500eebbc6eff9216919d2b47b140dd74527db8de570a4fc558970416a1acd0ee9f9860bc96f131c12c582a
6
+ metadata.gz: 7270039d305264702ad81589cf632ef42675bf76d32402db628b1c5c9decb0475e84c4bb4b5771653dfb34e5bbe9c95c7290947b88f7d78d3566e821a0938851
7
+ data.tar.gz: 882a2631d4ff8333774bad0826fda58da98eff73e4df9d238f6bc07c6f96b86ee263433c594e4e104a3ab948ee41e0dad13c59b6cf674a99efcd5a631995d7e5
checksums.yaml.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG v1
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABCgAGBQJTa7ALAAoJENcoxKfNVdjbmXMIAIoAFZuoZELYYnXJqf1jXdfe
6
- 7ZLYhPoI/J5TmxYoJ8D7pzJSw1IK00kmKitFsMmIRjDO5WlaOJoJJWKoQ4KFbo5K
7
- rCmRfwdOMNyWSK1dtdwpQkJHs1l/s/VQc9qydyRocjhFeDGh0QWlWyaOOwNXw6Wd
8
- Z5lMJRQIGF9AydjhQJxkQ8N7p675rnJanRtbZdWaO0QlYgSjDXYwmwnhmWfCHAIY
9
- obGKYXX6vEuUDvHkVpgmn/F33VCLOrsKv4GNh0VWZFmKxgeb937u06GxJawd+m+t
10
- XlHCtubTPwHx4quUNgo1/UARfsQqS8bMIHZgp7gADK4olz8iJY6MzMrtIdiyzbQ=
11
- =3uqV
5
+ iQEcBAABCgAGBQJTccHbAAoJENcoxKfNVdjb6/IH/R1XMxCti1sKez8IUMA4eY2d
6
+ u9QxT+0Z4lEkGNPs1ycqngH7fMnrN1qYnRK6KW+8HJAteUECdEOZ1qaQSpRXBC+c
7
+ ugXow6Kei6TIO4432/AjApk00mDCsv3YosNMUOj6lXyt8K3GCh8PNt8L1bPhk3CV
8
+ 6/mDw33hv9rKU0mCvzursiOxHpEsSQZ8lgi8O6q9YwouyHtEsrVMNEJPYIgU20sX
9
+ TUmNSxBFwX0/1orF64egekpT5zxcHUB8BRz4VsVD50evtYCBqLAaMZLZIf6J8rQM
10
+ cnHqMV2tS4SBKr4Tq7YKItTWGafIK3F1F6jeIgrzxWjNpVxt/wC0lCw9NHm+2Nc=
11
+ =dHhQ
12
12
  -----END PGP SIGNATURE-----
data.tar.gz.asc CHANGED
@@ -2,11 +2,11 @@
2
2
  Version: GnuPG v1
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQEcBAABCgAGBQJTa7AIAAoJENcoxKfNVdjbojcIAOHRH9llFujEsRcOVizaQ2Sb
6
- DydmPntKMNLqRrkyR9xlLqrL5ybfDGMvd7gpHnpXLzeoKA07nnQk7MNyqUl71cps
7
- TJ+A6o5bY+DGL4/WTyrzEpNFlkOwi9pEXUUCgYik2JOTZ+xK+2m0J72eh1zXO+fp
8
- o4v/+g8crVqgOLMIK+VNABJCWH7rvP/7oJooRs46v2Av5u7HCgc9iQA0+uu9ry3d
9
- HNo3sFqRq3cFiYVVz8GXngcgQAv44ageYRXi1xXKAcXMKDgK0seZ+yuLbI/OKiNx
10
- ED1rbJavgA/mhp8mCsdhk74SwRyWDo2TvJCK96D7iSmb5FapBqByKK1JkFX3Vd4=
11
- =dJ5L
5
+ iQEcBAABCgAGBQJTccHYAAoJENcoxKfNVdjbFuAIANv5LvoJolrzbd5jBPqb/u4u
6
+ PqveFsfu/9//EVq9sB+vZQ1av7Hrn7OYXkibhmvrvHwqO9l8Ve3/V0dQeAztk9qK
7
+ Xf9hA8hUBbP7uqbbhm+SfvL3I0oVE9nFYdG+eP853v2XqwNHcJSNb4D6vXWah1XU
8
+ 6jiUSkaUZH2appqQRZfA5xLM9E+ZMq9iRktUWkKXSWUeRKOdizNSs+HtbCTiblqy
9
+ IWwpSR2yJAg4/fHAC25X7DoOSCs6ENfl2ZuhOIISLykZHsT17ni22dqdCMnUDDl6
10
+ YWsQcygfxDezC9WiIGrEJJwYv1KelMvGszHWyyqOT5R/v219KN4XjTdTuYLeNL8=
11
+ =lqHA
12
12
  -----END PGP SIGNATURE-----
data/.gitignore CHANGED
@@ -20,3 +20,4 @@ features/support/selenuim.rb
20
20
  Gemfile.local.lock
21
21
  _site
22
22
  gemfiles/*lock
23
+ gh-pages
data/Gemfile CHANGED
@@ -20,6 +20,7 @@ group :development do
20
20
  # run `rake assets:precompile`
21
21
  # to get bundled application.(js|css)
22
22
  gem 'sprockets'
23
+ gem 'uglifier'
23
24
  gem 'sass-rails'
24
25
  gem 'coffee-rails'
25
26
  gem 'bootstrap-sass', '~> 3.1.1'
data/README.md CHANGED
@@ -33,6 +33,9 @@ but scaffolded schemas are pretty good by default.
33
33
  A lurker/api/v1/users-GET.json.yml
34
34
  A lurker/api/v1/users/__user_id/repos-GET.json.yml
35
35
 
36
+ I also advise you to look on [Understanding JSON Schema][json_schema_book] book,
37
+ it is up-to-date with draft4 and contains lot's of examples.
38
+
36
39
  ## Profit!
37
40
 
38
41
  Now, every test run lurker will look into your requests and [vaditate them][failed_spec_example]
@@ -87,12 +90,19 @@ are increasing notwithstanding ROLLBACK is called. As such:
87
90
  - ensure the same token to be accepted on your demo application
88
91
  - insert `Lurker::Sandbox` and the recorded examples should be ok to submit again
89
92
 
90
- ## Demo application
93
+ ## [Demo application][demo_app3]
94
+
95
+ You can clone the repo & run `rake build_example_docs && cd tmp/lurker_app && bin/rails s`
96
+ to get your running demo.
97
+
98
+ Lurker supports multiple domains (usually `staging` and `production`) and can be deployed
99
+ statically everywhere as well as be served by current `Rails` instance.
91
100
 
92
- You can clone the repo & run `rake build_example_docs`.
93
- It will generate testing rails application under `tmp/lurker_app`.
94
- Currently it is deployed [here][demo_app] within sandbox mode and [here][demo_app2].
101
+ For example:
95
102
 
103
+ - [Github Pages][demo_app3] is deployed statically; no api endpoint
104
+ - [Custom domain][demo_app2] html deployed under nginx; passenger serves demo api production endpoint
105
+ - [Heroku][demo_app] html is served by unicorn as well as staging api endpoint in `Sandbox` mode
96
106
 
97
107
  ## Contributions
98
108
 
@@ -107,13 +117,13 @@ I try to use [Waffle][waffle] to develop this gem, if you want to help:
107
117
  - drag an issue to "In Progress" and assign to yourself
108
118
  - have fun!
109
119
 
110
- **NOTICE:** to get new version of bundled `bootstrap` or update js/css,
120
+ **NOTE:** to get new version of bundled `bootstrap` or update js/css,
111
121
  don't touch files under `lib/lurker/templates/public` - they are autogenerated
112
122
  and copied to static generated site while `bin/lurker convert`
113
123
 
114
124
  rake assets:precompile # to build them
115
125
 
116
- Don't commit them to avoid conflicts.
126
+ Don't commit `lib/lurker/templates/public/**/*` to avoid conflicts.
117
127
 
118
128
  **NOTE:** if you write features keep in mind to generate different files with aruba,
119
129
  because they are kept in `lurker_app` directory to be deployed as a demo. Please, write
@@ -134,9 +144,14 @@ This gem is quite opinionated and relies on rails & rspec - if you're
134
144
  interested in anything else, please take a look at [api_taster][api_taster] or [fdoc][fdoc],
135
145
  This gem is heavily inspirated by them. Thanks, @square & @fredwu
136
146
 
137
- Also thanks to [Andrey Deryabin][aderyabin] for advice and [React.js][reactjs] for two-way binding.
147
+ Also thanks to
148
+
149
+ - [Andrey Deryabin][aderyabin] for advice
150
+ - [React.js][reactjs] for two-way binding
151
+ - [highlight.js][hljs] for syntax highlighting
138
152
 
139
153
  [aderyabin]: https://twitter.com/aderyabin
154
+ [hljs]: http://highlightjs.org/
140
155
  [waffle]: https://waffle.io/razum2um/lurker
141
156
  [gh_api]: https://developer.github.com/v3/meta/
142
157
  [rspec]: https://github.com/rspec/rspec-rails
@@ -147,19 +162,23 @@ Also thanks to [Andrey Deryabin][aderyabin] for advice and [React.js][reactjs] f
147
162
  [rspec_request_spec]: https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec
148
163
  [json_schema]: http://json-schema.org/
149
164
  [json_schema_example]: http://json-schema.org/example2.html
150
- [failed_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/controller-specs/test-endpoint
151
- [controler_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/controller-specs/schema-scaffolding
152
- [nested_controller_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/controller-specs/nested-schema-scaffolding
153
- [request_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/request-specs/schema-scaffolding
154
- [html_generation_example]: https://www.relishapp.com/razum2um/lurker/docs/docs-generation/html-generation
155
- [partial_example]: https://www.relishapp.com/razum2um/lurker/docs/docs-generation/partials
156
- [partial_example_demo]: http://lurker-app.herokuapp.com/lurker/api/v1/users/__user_id/repos-POST.html
165
+ [json_schema_book]: http://spacetelescope.github.io/understanding-json-schema/
157
166
  [evil_martians]: http://evilmartians.com/
167
+
168
+ [failed_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/test-endpoint
169
+ [controler_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/controller-schema-scaffolding
170
+ [nested_controller_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/controller-nested-schema-scaffolding
171
+ [request_spec_example]: https://www.relishapp.com/razum2um/lurker/docs/request-schema-scaffolding
172
+ [html_generation_example]: https://www.relishapp.com/razum2um/lurker/docs/html-generation
173
+ [partial_example]: https://www.relishapp.com/razum2um/lurker/docs/partials
174
+ [suffixes_example]: https://www.relishapp.com/razum2um/lurker/docs/request-schema-suffixes
175
+
158
176
  [demo_app]: http://lurker-app.herokuapp.com
159
177
  [demo_app2]: http://lurker.razum2um.me
178
+ [demo_app3]: http://razum2um.github.io/lurker/
160
179
  [demo_live]: http://lurker.razum2um.me/lurker/api/v1/users-POST.html
161
- [pdf_example]: http://lurker.razum2um.me/lurker/LurkerApp.pdf
162
- [suffixes_example]: https://www.relishapp.com/razum2um/lurker/docs/request-specs/schema-suffixes
180
+ [pdf_example]: http://razum2um.github.io/lurker/LurkerApp.pdf
181
+ [partial_example_demo]: http://razum2um.github.io/lurker/api/v1/users/__user_id/repos-POST.html
163
182
 
164
183
  [Gem Version]: https://rubygems.org/gems/lurker
165
184
  [Build Status]: https://travis-ci.org/razum2um/lurker
data/Rakefile CHANGED
@@ -59,6 +59,9 @@ namespace :assets do
59
59
  end
60
60
  end
61
61
 
62
+ sprockets.js_compressor = :uglify
63
+ sprockets.css_compressor = :scss
64
+
62
65
  BUNDLES.each do |bundle|
63
66
  assets = sprockets.find_asset(bundle)
64
67
  realname = (assets.pathname.basename.to_s.split(".").take_while { |s| !s.match /^(js|css)$/ } + [$~.to_s]).join(".")
@@ -81,6 +84,7 @@ Cucumber::Rake::Task.new(:cucumber) do |t|
81
84
  end
82
85
 
83
86
  EXAMPLE_APP = 'tmp/lurker_app'
87
+ GH_PAGES = 'gh-pages'
84
88
  EXAMPLE_PATH = File.expand_path("../#{EXAMPLE_APP}", __FILE__)
85
89
 
86
90
  namespace :clobber do
@@ -95,7 +99,7 @@ namespace :clobber do
95
99
  in_lurker_app "bin/spring stop" rescue nil
96
100
  Dir.chdir EXAMPLE_PATH do
97
101
  Dir.glob("*", File::FNM_DOTMATCH).each do |fname|
98
- next if fname == '.' || fname == '..' || fname == '.git'
102
+ next if fname == '.' || fname == '..' || fname == '.git' || fname == '.bundle'
99
103
  FileUtils.rm_rf fname
100
104
  end
101
105
  end
@@ -106,18 +110,17 @@ namespace :generate do
106
110
  desc "generate a fresh app with rspec installed"
107
111
  task :app do |t|
108
112
  if needs_generation?
109
- sh "bundle exec rails new #{EXAMPLE_APP} -d postgresql -m #{File.expand_path '../templates/lurker_app.rb', __FILE__} --skip-javascript --skip-git --skip-test-unit --skip-keeps --quiet"
113
+ sh "bundle exec rails new #{EXAMPLE_APP} -d postgresql -m #{File.expand_path '../templates/lurker_app.rb', __FILE__} --skip-javascript --skip-git --skip-test-unit --skip-keeps --skip-bundle --quiet"
114
+ in_lurker_app "bundle config --local local.lurker $PWD/../.." unless ENV['TRAVIS']
115
+ in_lurker_app "bundle install"
116
+ %w[rake rspec-core spring].each do |gem|
117
+ in_lurker_app "bundle binstubs #{gem}"
118
+ end
110
119
  end
111
120
  end
112
121
 
113
122
  desc "generate a bunch of stuff with generators"
114
123
  task :stuff do
115
- in_lurker_app "bundle install"
116
- if ENV['BUNDLE_GEMFILE'].to_s.match(/Gemfile(32|40)\.ci$/)
117
- %w[rake rspec-core spring].each do |gem|
118
- in_lurker_app "bundle binstubs #{gem}"
119
- end
120
- end
121
124
  in_lurker_app "LOCATION='../../templates/generate_stuff.rb' bin/rake rails:template --quiet --silent"
122
125
 
123
126
  unless ENV['TRAVIS']
@@ -136,6 +139,14 @@ def in_lurker_app(command)
136
139
  end
137
140
  end
138
141
 
142
+ def in_gh_pages(command)
143
+ Dir.chdir(GH_PAGES) do
144
+ Bundler.with_clean_env do
145
+ sh command
146
+ end
147
+ end
148
+ end
149
+
139
150
  def on_razum2um_me(command)
140
151
  puts "About to run: #{command}"
141
152
  system %Q{ssh lurker@razum2um.me 'bash -l -c "source ~/.bashrc; cd ~/lurker; rvm use 2.1.1; #{command}"'}
@@ -161,10 +172,19 @@ task :regenerate => ["clobber:coverage", "clobber:app", "generate:app", "generat
161
172
  desc 'run cucumber in a fresh env'
162
173
  task :features => [:regenerate, :cucumber]
163
174
 
164
- desc 'convert docs for example app'
175
+ desc 'convert docs for example app, prepages gh-pages'
165
176
  task :build_example_docs => :features do
166
- in_lurker_app "bin/lurker convert -c #{File.expand_path('../README.md', __FILE__)}"
177
+ if File.exists?(readme = File.expand_path('../README.md', __FILE__))
178
+ in_lurker_app "bin/lurker convert -c #{readme}"
179
+ else
180
+ in_lurker_app "bin/lurker convert"
181
+ end
182
+
167
183
  in_lurker_app "bin/lurker convert -f pdf -o html"
184
+
185
+ if File.exists?(pages = File.expand_path('../gh-pages', __FILE__))
186
+ in_lurker_app "cp -R html/* #{pages}"
187
+ end
168
188
  end
169
189
 
170
190
  def ask_for_deploy(name, callback)
@@ -222,26 +242,56 @@ namespace :razum2um do
222
242
  end
223
243
  end
224
244
 
245
+ namespace :github do
246
+ desc 'pushes example lurker_app to gh-pages'
247
+ task :push do
248
+ do_deploy = Proc.new {
249
+ in_gh_pages "git commit -a -m 'auto commit: #{`git log --oneline -n 1`.strip}'" rescue nil
250
+ in_gh_pages "git push origin gh-pages"
251
+ }
252
+ in_gh_pages "git add -A"
253
+ in_gh_pages "git status"
254
+ ask_for_deploy("gh-pages", do_deploy)
255
+ end
256
+
257
+ desc 'rebuilds & pushes app to gh-pages'
258
+ task :deploy => [:build_example_docs, 'github:push'] do
259
+ end
260
+ end
261
+
225
262
  task :default => ["clobber:coverage", :spec, :regenerate, :cucumber, 'coveralls:push']
226
263
 
227
264
  desc 'commits lurker app'
228
265
  task :predeploy do
229
- in_lurker_app "echo 'bin/lurker' > .gitignore"
230
- in_lurker_app "echo 'log' >> .gitignore"
231
- # commit migration and deploy by hand first time
232
- in_lurker_app "echo 'db/*' >> .gitignore"
233
- in_lurker_app "echo 'tmp/*log' >> .gitignore"
234
- in_lurker_app "echo '.bundle/*' >> .gitignore"
235
-
236
- in_lurker_app "git add -A"
237
- in_lurker_app "git status"
266
+ do_predeploy = Proc.new {
267
+ in_lurker_app "echo 'bin/lurker' > .gitignore"
268
+ in_lurker_app "echo 'log' >> .gitignore"
269
+ # commit migration and deploy by hand first time
270
+ in_lurker_app "echo 'db/*' >> .gitignore"
271
+ in_lurker_app "echo 'tmp/*log' >> .gitignore"
272
+ in_lurker_app "echo '.bundle/*' >> .gitignore"
273
+
274
+ in_lurker_app "git add -A"
275
+ in_lurker_app "git status"
276
+ }
277
+
278
+ if (stage = `git log @{u}..`).lines.size > 0
279
+ puts stage
280
+ do_push_and_predeploy = Proc.new {
281
+ sh "git push origin master"
282
+ do_predeploy.call
283
+ }
284
+ ask_for_deploy("push master", do_push_and_predeploy)
285
+ else
286
+ do_predeploy.call
287
+ end
238
288
  end
239
289
 
240
290
  desc 'deploys everything'
241
- task :deploy => ["razum2um:deploy", "heroku:deploy"]
291
+ task :deploy => ["razum2um:deploy", "heroku:deploy", "github:deploy"]
242
292
 
243
293
  desc 'pushes everything'
244
- task :push => ["razum2um:push", "heroku:push"]
294
+ task :push => ["razum2um:push", "heroku:push", "github:push"]
245
295
 
246
296
  desc 'releases gem & updates docs'
247
297
  task :publish do
data/features/README.md CHANGED
@@ -8,7 +8,7 @@ This is the official documentation site for [Lurker][Github]
8
8
  [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/87ced56265849ad6386c2ba0a78f8038 "githalytics.com")](http://githalytics.com/razum2um/lurker)
9
9
 
10
10
 
11
- [Github]: https://github.com/razum2um/lurker
11
+ [Github]: https://razum2um.github.io/lurker
12
12
  [Gem Version]: https://rubygems.org/gems/lurker
13
13
  [Build Status]: https://travis-ci.org/razum2um/lurker
14
14
  [Dependency Status]: https://gemnasium.com/razum2um/lurker
@@ -1,4 +1,4 @@
1
- Feature: nested schema scaffolding
1
+ Feature: controller nested schema scaffolding
2
2
 
3
3
  If your API endpoint has some dynamic segment - Lurker can handle it as well!
4
4
 
@@ -34,6 +34,10 @@ Feature: nested schema scaffolding
34
34
  description: repo listing
35
35
  prefix: repos management
36
36
  requestParameters:
37
+ description: ''
38
+ type: object
39
+ additionalProperties: false
40
+ required: []
37
41
  properties:
38
42
  user_id:
39
43
  description: ''
@@ -43,7 +47,6 @@ Feature: nested schema scaffolding
43
47
  description: ''
44
48
  type: integer
45
49
  example: 1
46
- required: []
47
50
  responseCodes:
48
51
  - status: 200
49
52
  successful: true
@@ -53,6 +56,8 @@ Feature: nested schema scaffolding
53
56
  items:
54
57
  description: ''
55
58
  type: object
59
+ additionalProperties: false
60
+ required: []
56
61
  properties:
57
62
  id:
58
63
  description: ''
@@ -66,7 +71,6 @@ Feature: nested schema scaffolding
66
71
  description: ''
67
72
  type: integer
68
73
  example: 1
69
- required: []
70
74
  extensions:
71
75
  method: GET
72
76
  path_info: "/api/v1/users/1/repos"
@@ -1,4 +1,8 @@
1
- Feature: schema scaffolding
1
+ Feature: controller schema scaffolding
2
+
3
+ When you prefer to test controller not in a unit-test fashion,
4
+ but including `render_views` - you can add `:lurker` metadata
5
+ to get a json schema for your api-documented endpoint
2
6
 
3
7
  Scenario: scaffold a json schema for a "users/show" in controller spec
4
8
  Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
@@ -28,17 +32,24 @@ Feature: schema scaffolding
28
32
  description: user
29
33
  prefix: users management
30
34
  requestParameters:
35
+ description: ''
36
+ type: object
37
+ additionalProperties: false
38
+ required: []
31
39
  properties:
32
40
  id:
33
41
  description: ''
34
42
  type: integer
35
43
  example: 1
36
- required: []
37
44
  responseCodes:
38
45
  - status: 200
39
46
  successful: true
40
47
  description: ''
41
48
  responseParameters:
49
+ description: ''
50
+ type: object
51
+ additionalProperties: false
52
+ required: []
42
53
  properties:
43
54
  id:
44
55
  description: ''
@@ -48,7 +59,6 @@ Feature: schema scaffolding
48
59
  description: ''
49
60
  type: string
50
61
  example: razum2um
51
- required: []
52
62
  extensions:
53
63
  method: GET
54
64
  path_info: "/api/v1/users/1"
@@ -1,6 +1,8 @@
1
1
  Feature: html generation
2
2
 
3
- When testing your api ensure that CSRF protection is handled properly
3
+ Lurker generates pretty info pages based on schema information
4
+ and form which allow you to test live api.
5
+ When testing your api ensure that CSRF protection is handled properlya
4
6
  with `protect_from_forgery :null_session`
5
7
 
6
8
  @javascript
@@ -14,15 +16,11 @@ Feature: html generation
14
16
  requestParameters:
15
17
  properties:
16
18
  user:
17
- description: ''
18
19
  type: object
19
20
  properties:
20
21
  name:
21
- description: ''
22
22
  type: string
23
23
  example: Bob
24
- required: []
25
- required: []
26
24
  responseCodes:
27
25
  - status: 200
28
26
  successful: true
@@ -30,11 +28,9 @@ Feature: html generation
30
28
  responseParameters:
31
29
  properties:
32
30
  id:
33
- description: ''
34
31
  type: integer
35
32
  example: 1
36
33
  name:
37
- description: ''
38
34
  type: string
39
35
  example: Bob
40
36
  required: []