brainstem 1.4.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +77 -0
  3. data/README.md +119 -0
  4. data/docs/api_doc_generator.markdown +45 -4
  5. data/docs/brainstem_executable.markdown +1 -1
  6. data/docs/oas_2_docgen.png +0 -0
  7. data/docs/oas_2_docgen_ascii.txt +78 -0
  8. data/lib/brainstem/api_docs.rb +23 -9
  9. data/lib/brainstem/api_docs/abstract_collection.rb +0 -13
  10. data/lib/brainstem/api_docs/atlas.rb +0 -14
  11. data/lib/brainstem/api_docs/builder.rb +0 -14
  12. data/lib/brainstem/api_docs/controller.rb +7 -16
  13. data/lib/brainstem/api_docs/controller_collection.rb +0 -3
  14. data/lib/brainstem/api_docs/endpoint.rb +73 -19
  15. data/lib/brainstem/api_docs/endpoint_collection.rb +0 -7
  16. data/lib/brainstem/api_docs/formatters/abstract_formatter.rb +0 -2
  17. data/lib/brainstem/api_docs/formatters/markdown/controller_formatter.rb +1 -9
  18. data/lib/brainstem/api_docs/formatters/markdown/endpoint_collection_formatter.rb +1 -9
  19. data/lib/brainstem/api_docs/formatters/markdown/endpoint_formatter.rb +39 -24
  20. data/lib/brainstem/api_docs/formatters/markdown/helper.rb +0 -13
  21. data/lib/brainstem/api_docs/formatters/markdown/presenter_formatter.rb +22 -35
  22. data/lib/brainstem/api_docs/formatters/open_api_specification/helper.rb +66 -0
  23. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/controller_formatter.rb +57 -0
  24. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/param_definitions_formatter.rb +311 -0
  25. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/response_definitions_formatter.rb +197 -0
  26. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_collection_formatter.rb +60 -0
  27. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_formatter.rb +162 -0
  28. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/info_formatter.rb +126 -0
  29. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/presenter_formatter.rb +132 -0
  30. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb +99 -0
  31. data/lib/brainstem/api_docs/formatters/open_api_specification/version_2/tags_formatter.rb +123 -0
  32. data/lib/brainstem/api_docs/introspectors/abstract_introspector.rb +0 -7
  33. data/lib/brainstem/api_docs/introspectors/rails_introspector.rb +1 -20
  34. data/lib/brainstem/api_docs/presenter.rb +21 -27
  35. data/lib/brainstem/api_docs/presenter_collection.rb +1 -11
  36. data/lib/brainstem/api_docs/resolver.rb +1 -8
  37. data/lib/brainstem/api_docs/sinks/abstract_sink.rb +0 -4
  38. data/lib/brainstem/api_docs/sinks/controller_presenter_multifile_sink.rb +0 -9
  39. data/lib/brainstem/api_docs/sinks/open_api_specification_sink.rb +234 -0
  40. data/lib/brainstem/api_docs/sinks/stdout_sink.rb +0 -5
  41. data/lib/brainstem/cli.rb +0 -13
  42. data/lib/brainstem/cli/abstract_command.rb +0 -7
  43. data/lib/brainstem/cli/generate_api_docs_command.rb +48 -24
  44. data/lib/brainstem/concerns/controller_dsl.rb +288 -145
  45. data/lib/brainstem/concerns/formattable.rb +0 -5
  46. data/lib/brainstem/concerns/optional.rb +0 -1
  47. data/lib/brainstem/concerns/presenter_dsl.rb +2 -21
  48. data/lib/brainstem/dsl/configuration.rb +0 -11
  49. data/lib/brainstem/presenter.rb +0 -4
  50. data/lib/brainstem/version.rb +1 -1
  51. data/spec/brainstem/api_docs/abstract_collection_spec.rb +0 -11
  52. data/spec/brainstem/api_docs/atlas_spec.rb +0 -6
  53. data/spec/brainstem/api_docs/builder_spec.rb +0 -4
  54. data/spec/brainstem/api_docs/controller_collection_spec.rb +0 -2
  55. data/spec/brainstem/api_docs/controller_spec.rb +29 -18
  56. data/spec/brainstem/api_docs/endpoint_collection_spec.rb +0 -6
  57. data/spec/brainstem/api_docs/endpoint_spec.rb +343 -13
  58. data/spec/brainstem/api_docs/formatters/abstract_formatter_spec.rb +0 -2
  59. data/spec/brainstem/api_docs/formatters/markdown/controller_formatter_spec.rb +0 -1
  60. data/spec/brainstem/api_docs/formatters/markdown/endpoint_collection_formatter_spec.rb +0 -5
  61. data/spec/brainstem/api_docs/formatters/markdown/endpoint_formatter_spec.rb +94 -8
  62. data/spec/brainstem/api_docs/formatters/markdown/helper_spec.rb +0 -8
  63. data/spec/brainstem/api_docs/formatters/markdown/presenter_formatter_spec.rb +0 -7
  64. data/spec/brainstem/api_docs/formatters/open_api_specification/helper_spec.rb +210 -0
  65. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/controller_formatter_spec.rb +81 -0
  66. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/param_definitions_formatter_spec.rb +672 -0
  67. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/response_definitions_formatter_spec.rb +335 -0
  68. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_collection_formatter_spec.rb +59 -0
  69. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_formatter_spec.rb +308 -0
  70. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/info_formatter_spec.rb +89 -0
  71. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/presenter_formatter_spec.rb +430 -0
  72. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter_spec.rb +190 -0
  73. data/spec/brainstem/api_docs/formatters/open_api_specification/version_2/tags_formatter_spec.rb +217 -0
  74. data/spec/brainstem/api_docs/introspectors/abstract_introspector_spec.rb +0 -2
  75. data/spec/brainstem/api_docs/introspectors/rails_introspector_spec.rb +0 -2
  76. data/spec/brainstem/api_docs/presenter_collection_spec.rb +0 -2
  77. data/spec/brainstem/api_docs/presenter_spec.rb +58 -18
  78. data/spec/brainstem/api_docs/resolver_spec.rb +0 -1
  79. data/spec/brainstem/api_docs/sinks/controller_presenter_multifile_sink_spec.rb +0 -2
  80. data/spec/brainstem/api_docs/sinks/open_api_specification_sink_spec.rb +371 -0
  81. data/spec/brainstem/api_docs_spec.rb +2 -0
  82. data/spec/brainstem/cli/abstract_command_spec.rb +0 -4
  83. data/spec/brainstem/cli/generate_api_docs_command_spec.rb +53 -2
  84. data/spec/brainstem/concerns/controller_dsl_spec.rb +430 -64
  85. data/spec/brainstem/concerns/presenter_dsl_spec.rb +0 -20
  86. data/spec/brainstem/preloader_spec.rb +0 -7
  87. data/spec/brainstem/presenter_spec.rb +0 -1
  88. data/spec/dummy/rails.rb +0 -1
  89. data/spec/spec_helpers/db.rb +0 -1
  90. metadata +37 -2
@@ -608,26 +608,6 @@ describe Brainstem::Concerns::PresenterDSL do
608
608
  expect(foo[:item_type]).to eq("string")
609
609
  end
610
610
  end
611
-
612
-
613
- context "when type is not specified" do
614
- before do
615
- mock(presenter_class).deprecated_type_warning
616
- end
617
-
618
- it "adds a deprecation warning and creates an entry in the filters configuration" do
619
- my_proc = Proc.new { 1 }
620
- presenter_class.filter(:foo, :default => true, &my_proc)
621
-
622
- expect(foo).to eq({ "default" => true, "value" => my_proc, "type" => "string" })
623
- end
624
-
625
- it "adds a deprecation warning and records the info option" do
626
- presenter_class.filter(:foo, :info => "This is documented.")
627
- expect(foo[:info]).to eq "This is documented."
628
- expect(foo[:type]).to eq "string"
629
- end
630
- end
631
611
  end
632
612
 
633
613
  describe ".search" do
@@ -8,7 +8,6 @@ describe Brainstem::Preloader do
8
8
  let(:args) { [ models, preloads, reflections ] }
9
9
  let!(:preloader) { Brainstem::Preloader.new(*args) }
10
10
 
11
-
12
11
  describe ".preload" do
13
12
  it "creates a new instance, passing args and calls it" do
14
13
  preloader = mock(Object.new).call
@@ -17,7 +16,6 @@ describe Brainstem::Preloader do
17
16
  end
18
17
  end
19
18
 
20
-
21
19
  describe "#call" do
22
20
  it "cleans" do
23
21
  mock(preloader).clean!
@@ -30,7 +28,6 @@ describe Brainstem::Preloader do
30
28
  end
31
29
  end
32
30
 
33
-
34
31
  describe "#clean!" do
35
32
  it "dedupes the associations" do
36
33
  mock(preloader).dedupe!
@@ -43,7 +40,6 @@ describe Brainstem::Preloader do
43
40
  end
44
41
  end
45
42
 
46
-
47
43
  describe "#dedupe!" do
48
44
  before do
49
45
  preloader.send(:dedupe!)
@@ -67,7 +63,6 @@ describe Brainstem::Preloader do
67
63
  end
68
64
  end
69
65
 
70
-
71
66
  describe "combination" do
72
67
  let(:preloads) { [
73
68
  { :workspaces => :other_things },
@@ -87,7 +82,6 @@ describe Brainstem::Preloader do
87
82
  end
88
83
  end
89
84
 
90
-
91
85
  describe "#remove_unreflected_preloads!" do
92
86
  before do
93
87
  stub(preloader).dedupe!
@@ -116,7 +110,6 @@ describe Brainstem::Preloader do
116
110
  end
117
111
  end
118
112
 
119
-
120
113
  describe "#preload!" do
121
114
  let(:preload_method) { Object.new }
122
115
  let(:valid_preloads) { { users: [], posts: [] } }
@@ -840,7 +840,6 @@ describe Brainstem::Presenter do
840
840
  end
841
841
  end
842
842
 
843
-
844
843
  it "preloads associations when they are full model-level associations" do
845
844
  preloader_should_receive("tasks" => [], "user" => [])
846
845
  presenter.group_present(Workspace.order('id desc'), %w[tasks user lead_user tasks_with_lambda])
@@ -7,7 +7,6 @@ silence_warnings do
7
7
  FakeRailsRoute = Struct.new(:name, :path, :defaults, :constraints)
8
8
  end
9
9
 
10
-
11
10
  class Rails
12
11
  def self.application
13
12
  @application ||= begin
@@ -8,7 +8,6 @@ Workspace.create!(:id => 4, :user_id => 1, :title => "bob workspace 4", :descrip
8
8
  Workspace.create!(:id => 5, :user_id => 2, :title => "jane workspace 1", :description => "c")
9
9
  Workspace.create!(:id => 6, :user_id => 2, :title => "jane workspace 2", :description => "3")
10
10
 
11
-
12
11
  Cheese.create!(id: 1, user_id: 1, flavor: 'colby jack' )
13
12
  Cheese.create!(id: 2, user_id: 1, flavor: 'swiss' )
14
13
  Cheese.create!(id: 3, user_id: 1, flavor: 'cheese curds' )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brainstem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mavenlink
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-09 00:00:00.000000000 Z
11
+ date: 2018-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -216,6 +216,8 @@ files:
216
216
  - docs/docgen_ascii.txt
217
217
  - docs/executable.png
218
218
  - docs/executable_ascii.txt
219
+ - docs/oas_2_docgen.png
220
+ - docs/oas_2_docgen_ascii.txt
219
221
  - lib/brainstem.rb
220
222
  - lib/brainstem/api_docs.rb
221
223
  - lib/brainstem/api_docs/abstract_collection.rb
@@ -232,6 +234,16 @@ files:
232
234
  - lib/brainstem/api_docs/formatters/markdown/endpoint_formatter.rb
233
235
  - lib/brainstem/api_docs/formatters/markdown/helper.rb
234
236
  - lib/brainstem/api_docs/formatters/markdown/presenter_formatter.rb
237
+ - lib/brainstem/api_docs/formatters/open_api_specification/helper.rb
238
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/controller_formatter.rb
239
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/param_definitions_formatter.rb
240
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/response_definitions_formatter.rb
241
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_collection_formatter.rb
242
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_formatter.rb
243
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/info_formatter.rb
244
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/presenter_formatter.rb
245
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter.rb
246
+ - lib/brainstem/api_docs/formatters/open_api_specification/version_2/tags_formatter.rb
235
247
  - lib/brainstem/api_docs/introspectors/abstract_introspector.rb
236
248
  - lib/brainstem/api_docs/introspectors/rails_introspector.rb
237
249
  - lib/brainstem/api_docs/presenter.rb
@@ -239,6 +251,7 @@ files:
239
251
  - lib/brainstem/api_docs/resolver.rb
240
252
  - lib/brainstem/api_docs/sinks/abstract_sink.rb
241
253
  - lib/brainstem/api_docs/sinks/controller_presenter_multifile_sink.rb
254
+ - lib/brainstem/api_docs/sinks/open_api_specification_sink.rb
242
255
  - lib/brainstem/api_docs/sinks/stdout_sink.rb
243
256
  - lib/brainstem/cli.rb
244
257
  - lib/brainstem/cli/abstract_command.rb
@@ -289,6 +302,16 @@ files:
289
302
  - spec/brainstem/api_docs/formatters/markdown/endpoint_formatter_spec.rb
290
303
  - spec/brainstem/api_docs/formatters/markdown/helper_spec.rb
291
304
  - spec/brainstem/api_docs/formatters/markdown/presenter_formatter_spec.rb
305
+ - spec/brainstem/api_docs/formatters/open_api_specification/helper_spec.rb
306
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/controller_formatter_spec.rb
307
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/param_definitions_formatter_spec.rb
308
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/response_definitions_formatter_spec.rb
309
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_collection_formatter_spec.rb
310
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_formatter_spec.rb
311
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/info_formatter_spec.rb
312
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/presenter_formatter_spec.rb
313
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter_spec.rb
314
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/tags_formatter_spec.rb
292
315
  - spec/brainstem/api_docs/introspectors/abstract_introspector_spec.rb
293
316
  - spec/brainstem/api_docs/introspectors/rails_introspector_spec.rb
294
317
  - spec/brainstem/api_docs/presenter_collection_spec.rb
@@ -296,6 +319,7 @@ files:
296
319
  - spec/brainstem/api_docs/resolver_spec.rb
297
320
  - spec/brainstem/api_docs/sinks/abstract_sink_spec.rb
298
321
  - spec/brainstem/api_docs/sinks/controller_presenter_multifile_sink_spec.rb
322
+ - spec/brainstem/api_docs/sinks/open_api_specification_sink_spec.rb
299
323
  - spec/brainstem/api_docs/sinks/stdout_sink_spec.rb
300
324
  - spec/brainstem/api_docs_spec.rb
301
325
  - spec/brainstem/cli/abstract_command_spec.rb
@@ -370,6 +394,16 @@ test_files:
370
394
  - spec/brainstem/api_docs/formatters/markdown/endpoint_formatter_spec.rb
371
395
  - spec/brainstem/api_docs/formatters/markdown/helper_spec.rb
372
396
  - spec/brainstem/api_docs/formatters/markdown/presenter_formatter_spec.rb
397
+ - spec/brainstem/api_docs/formatters/open_api_specification/helper_spec.rb
398
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/controller_formatter_spec.rb
399
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/param_definitions_formatter_spec.rb
400
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint/response_definitions_formatter_spec.rb
401
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_collection_formatter_spec.rb
402
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/endpoint_formatter_spec.rb
403
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/info_formatter_spec.rb
404
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/presenter_formatter_spec.rb
405
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/security_definitions_formatter_spec.rb
406
+ - spec/brainstem/api_docs/formatters/open_api_specification/version_2/tags_formatter_spec.rb
373
407
  - spec/brainstem/api_docs/introspectors/abstract_introspector_spec.rb
374
408
  - spec/brainstem/api_docs/introspectors/rails_introspector_spec.rb
375
409
  - spec/brainstem/api_docs/presenter_collection_spec.rb
@@ -377,6 +411,7 @@ test_files:
377
411
  - spec/brainstem/api_docs/resolver_spec.rb
378
412
  - spec/brainstem/api_docs/sinks/abstract_sink_spec.rb
379
413
  - spec/brainstem/api_docs/sinks/controller_presenter_multifile_sink_spec.rb
414
+ - spec/brainstem/api_docs/sinks/open_api_specification_sink_spec.rb
380
415
  - spec/brainstem/api_docs/sinks/stdout_sink_spec.rb
381
416
  - spec/brainstem/api_docs_spec.rb
382
417
  - spec/brainstem/cli/abstract_command_spec.rb