apidoc_to_gfm 0.0.1

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 (82) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +28 -0
  8. data/Rakefile +6 -0
  9. data/apidoc_to_gfm.gemspec +29 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/example/.gitignore +18 -0
  13. data/example/.rspec +2 -0
  14. data/example/Gemfile +13 -0
  15. data/example/Gemfile.lock +167 -0
  16. data/example/README.rdoc +28 -0
  17. data/example/Rakefile +6 -0
  18. data/example/app/assets/images/.keep +0 -0
  19. data/example/app/assets/javascripts/application.js +16 -0
  20. data/example/app/assets/stylesheets/application.css +15 -0
  21. data/example/app/controllers/application_controller.rb +5 -0
  22. data/example/app/controllers/concerns/.keep +0 -0
  23. data/example/app/controllers/orders_controller.rb +31 -0
  24. data/example/app/controllers/uploads_controller.rb +5 -0
  25. data/example/app/helpers/application_helper.rb +2 -0
  26. data/example/app/mailers/.keep +0 -0
  27. data/example/app/models/.keep +0 -0
  28. data/example/app/models/concerns/.keep +0 -0
  29. data/example/app/models/order.rb +2 -0
  30. data/example/app/views/layouts/application.html.erb +14 -0
  31. data/example/bin/bundle +3 -0
  32. data/example/bin/rails +8 -0
  33. data/example/bin/rake +8 -0
  34. data/example/bin/spring +18 -0
  35. data/example/config/application.rb +30 -0
  36. data/example/config/boot.rb +4 -0
  37. data/example/config/database.yml +25 -0
  38. data/example/config/environment.rb +5 -0
  39. data/example/config/environments/development.rb +37 -0
  40. data/example/config/environments/production.rb +83 -0
  41. data/example/config/environments/test.rb +39 -0
  42. data/example/config/initializers/backtrace_silencers.rb +7 -0
  43. data/example/config/initializers/cookies_serializer.rb +3 -0
  44. data/example/config/initializers/filter_parameter_logging.rb +4 -0
  45. data/example/config/initializers/inflections.rb +16 -0
  46. data/example/config/initializers/mime_types.rb +4 -0
  47. data/example/config/initializers/session_store.rb +3 -0
  48. data/example/config/initializers/wrap_parameters.rb +14 -0
  49. data/example/config/locales/en.yml +23 -0
  50. data/example/config/routes.rb +7 -0
  51. data/example/config/secrets.yml +22 -0
  52. data/example/config.ru +4 -0
  53. data/example/db/migrate/20140616151047_create_orders.rb +11 -0
  54. data/example/db/schema.rb +24 -0
  55. data/example/db/seeds.rb +7 -0
  56. data/example/lib/assets/.keep +0 -0
  57. data/example/lib/tasks/.keep +0 -0
  58. data/example/log/.keep +0 -0
  59. data/example/public/404.html +67 -0
  60. data/example/public/422.html +67 -0
  61. data/example/public/500.html +66 -0
  62. data/example/public/favicon.ico +0 -0
  63. data/example/public/robots.txt +5 -0
  64. data/example/spec/acceptance/orders_spec.rb +94 -0
  65. data/example/spec/acceptance/uploads_spec.rb +15 -0
  66. data/example/spec/acceptance_helper.rb +9 -0
  67. data/example/spec/fixtures/file.png +0 -0
  68. data/example/spec/rails_helper.rb +43 -0
  69. data/example/spec/spec_helper.rb +74 -0
  70. data/example/vendor/assets/javascripts/.keep +0 -0
  71. data/example/vendor/assets/stylesheets/.keep +0 -0
  72. data/lib/apidoc_to_gfm/version.rb +3 -0
  73. data/lib/apidoc_to_gfm/views/example.rb +42 -0
  74. data/lib/apidoc_to_gfm/views/helpers.rb +14 -0
  75. data/lib/apidoc_to_gfm/views/index.rb +17 -0
  76. data/lib/apidoc_to_gfm/views.rb +8 -0
  77. data/lib/apidoc_to_gfm/writers/writer.rb +13 -0
  78. data/lib/apidoc_to_gfm/writers.rb +6 -0
  79. data/lib/apidoc_to_gfm.rb +10 -0
  80. data/templates/rspec_api_documentation/gfm_example.mustache +34 -0
  81. data/templates/rspec_api_documentation/gfm_index.mustache +10 -0
  82. metadata +180 -0
@@ -0,0 +1,43 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require 'spec_helper'
4
+ require File.expand_path("../../config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc, in
8
+ # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
9
+ # run as spec files by default. This means that files in spec/support that end
10
+ # in _spec.rb will both be required and run as specs, causing the specs to be
11
+ # run twice. It is recommended that you do not name files matching this glob to
12
+ # end with _spec.rb. You can configure this pattern with with the --pattern
13
+ # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
14
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
15
+
16
+ # Checks for pending migrations before tests are run.
17
+ # If you are not using ActiveRecord, you can remove this line.
18
+ ActiveRecord::Migration.maintain_test_schema!
19
+
20
+ RSpec.configure do |config|
21
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
22
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
23
+
24
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
25
+ # examples within a transaction, remove the following line or assign false
26
+ # instead of true.
27
+ config.use_transactional_fixtures = true
28
+
29
+ # RSpec Rails can automatically mix in different behaviours to your tests
30
+ # based on their file location, for example enabling you to call `get` and
31
+ # `post` in specs under `spec/controllers`.
32
+ #
33
+ # You can disable this behaviour by removing the line below, and instead
34
+ # explicitly tag your specs with their type, e.g.:
35
+ #
36
+ # RSpec.describe UsersController, :type => :controller do
37
+ # # ...
38
+ # end
39
+ #
40
+ # The different available types are documented in the features, such as in
41
+ # https://relishapp.com/rspec/rspec-rails/docs
42
+ config.infer_spec_type_from_file_location!
43
+ end
@@ -0,0 +1,74 @@
1
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
+ # file to always be loaded, without a need to explicitly require it in any files.
5
+ #
6
+ # Given that it is always loaded, you are encouraged to keep this file as
7
+ # light-weight as possible. Requiring heavyweight dependencies from this file
8
+ # will add to the boot time of your test suite on EVERY test run, even for an
9
+ # individual file that may not need all of that loaded. Instead, make a
10
+ # separate helper file that requires this one and then use it only in the specs
11
+ # that actually need it.
12
+ #
13
+ # The `.rspec` file also contains a few flags that are not defaults but that
14
+ # users commonly want.
15
+ #
16
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
+ RSpec.configure do |config|
18
+ # These two settings work together to allow you to limit a spec run
19
+ # to individual examples or groups you care about by tagging them with
20
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
21
+ # get run.
22
+ config.filter_run :focus
23
+ config.run_all_when_everything_filtered = true
24
+
25
+ # Many RSpec users commonly either run the entire suite or an individual
26
+ # file, and it's useful to allow more verbose output when running an
27
+ # individual spec file.
28
+ if config.files_to_run.one?
29
+ # Use the documentation formatter for detailed output,
30
+ # unless a formatter has already been configured
31
+ # (e.g. via a command-line flag).
32
+ config.default_formatter = 'doc'
33
+ end
34
+
35
+ # Print the 10 slowest examples and example groups at the
36
+ # end of the spec run, to help surface which specs are running
37
+ # particularly slow.
38
+ config.profile_examples = 10
39
+
40
+ # Run specs in random order to surface order dependencies. If you find an
41
+ # order dependency and want to debug it, you can fix the order by providing
42
+ # the seed, which is printed after each run.
43
+ # --seed 1234
44
+ config.order = :random
45
+
46
+ # Seed global randomization in this process using the `--seed` CLI option.
47
+ # Setting this allows you to use `--seed` to deterministically reproduce
48
+ # test failures related to randomization by passing the same `--seed` value
49
+ # as the one that triggered the failure.
50
+ Kernel.srand config.seed
51
+
52
+ # rspec-expectations config goes here. You can use an alternate
53
+ # assertion/expectation library such as wrong or the stdlib/minitest
54
+ # assertions if you prefer.
55
+ config.expect_with :rspec do |expectations|
56
+ # Enable only the newer, non-monkey-patching expect syntax.
57
+ # For more details, see:
58
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
59
+ expectations.syntax = :expect
60
+ end
61
+
62
+ # rspec-mocks config goes here. You can use an alternate test double
63
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
64
+ config.mock_with :rspec do |mocks|
65
+ # Enable only the newer, non-monkey-patching expect syntax.
66
+ # For more details, see:
67
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
68
+ mocks.syntax = :expect
69
+
70
+ # Prevents you from mocking or stubbing a method that does not exist on
71
+ # a real object. This is generally recommended.
72
+ mocks.verify_partial_doubles = true
73
+ end
74
+ end
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ module ApidocToGFM
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,42 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module ApidocToGFM
4
+ module Views
5
+ class Example < ::RspecApiDocumentation::Views::MarkdownExample
6
+ include Helpers
7
+
8
+ def initialize(example, configuration)
9
+ super
10
+ self.template_name = "rspec_api_documentation/gfm_example"
11
+ self.template_path = template_path_from_gem unless template_exists?
12
+ end
13
+
14
+ # Gitlab works only english filenames!
15
+ def dirname
16
+ transliterate(super).downcase
17
+ end
18
+
19
+ def filename
20
+ transliterate(super).downcase
21
+ end
22
+
23
+ def parameters
24
+ super.map do |parameter|
25
+ parameter.merge({
26
+ :required => parameter[:required] ? 'yes' : 'no',
27
+ })
28
+ end
29
+ end
30
+
31
+ def extension
32
+ @extension ||= 'md'.freeze
33
+ end
34
+
35
+ private
36
+
37
+ def transliterate(string, replacement = '_')
38
+ ActiveSupport::Inflector.transliterate string, replacement
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,14 @@
1
+ module ApidocToGFM
2
+ module Views
3
+ module Helpers
4
+ def template_exists?
5
+ path = File.join(self.template_path, self.template_name)
6
+ File.exists? path
7
+ end
8
+
9
+ def template_path_from_gem
10
+ File.expand_path("../../../../templates", __FILE__)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ module ApidocToGFM
2
+ module Views
3
+ class Index < ::RspecApiDocumentation::Views::MarkdownIndex
4
+ include Helpers
5
+
6
+ def initialize(index, configuration)
7
+ super
8
+ self.template_name = "rspec_api_documentation/gfm_index"
9
+ self.template_path = template_path_from_gem unless template_exists?
10
+ end
11
+
12
+ def examples
13
+ @index.examples.map { |example| Example.new(example, @configuration) }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ require "apidoc_to_gfm/views/helpers"
2
+ require "apidoc_to_gfm/views/example"
3
+ require "apidoc_to_gfm/views/index"
4
+
5
+ module ApidocToGFM
6
+ module Views
7
+ end
8
+ end
@@ -0,0 +1,13 @@
1
+ module ApidocToGFM
2
+ module Writers
3
+ class Writer < ::RspecApiDocumentation::Writers::MarkdownWriter
4
+ def markup_index_class
5
+ Views::Index
6
+ end
7
+
8
+ def markup_example_class
9
+ Views::Example
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ require "apidoc_to_gfm/writers/writer"
2
+
3
+ module ApidocToGFM
4
+ module Writers
5
+ end
6
+ end
@@ -0,0 +1,10 @@
1
+ require "rspec_api_documentation"
2
+
3
+ require "apidoc_to_gfm/version"
4
+ require "apidoc_to_gfm/views"
5
+ require "apidoc_to_gfm/writers"
6
+
7
+ module ApidocToGFM
8
+ end
9
+
10
+ RspecApiDocumentation::Writers.const_set("gfm_writer".classify, ApidocToGFM::Writers::Writer)
@@ -0,0 +1,34 @@
1
+ # {{ resource_name }}
2
+
3
+ ## {{ description }}
4
+
5
+ {{# explanation }}
6
+
7
+ {{ explanation }}
8
+ {{/ explanation }}
9
+
10
+ ```
11
+ {{ http_method }} {{ route }}
12
+ ```
13
+
14
+ {{# has_parameters? }}
15
+
16
+ | Attribute | Type | Required | Description |
17
+ | --------- | ---- | -------- | ----------- |
18
+ {{# parameters }}
19
+ | {{ name }} | {{ Type }} | {{ required }} | {{ description }} |
20
+ {{/ parameters }}
21
+
22
+ {{/ has_parameters? }}
23
+
24
+ {{# requests }}
25
+ {{# response_status }}
26
+ {{# response_body }}
27
+
28
+ Example response:
29
+
30
+ <pre>{{ response_body }}</pre>
31
+
32
+ {{/ response_body }}
33
+ {{/ response_status }}
34
+ {{/ requests }}
@@ -0,0 +1,10 @@
1
+ # API
2
+
3
+ {{# sections }}
4
+ ## {{ resource_name }}
5
+
6
+ {{# examples }}
7
+ * [{{ description }}]({{ dirname }}/{{ filename }})
8
+ {{/ examples }}
9
+
10
+ {{/ sections }}
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apidoc_to_gfm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - German Antsiferov
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec_api_documentation
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.7.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.7.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ description: The template supports GitLab Flavored Markdown (GFM)
70
+ email:
71
+ - dxdy@bk.ru
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .rspec
78
+ - .travis.yml
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - apidoc_to_gfm.gemspec
84
+ - bin/console
85
+ - bin/setup
86
+ - example/.gitignore
87
+ - example/.rspec
88
+ - example/Gemfile
89
+ - example/Gemfile.lock
90
+ - example/README.rdoc
91
+ - example/Rakefile
92
+ - example/app/assets/images/.keep
93
+ - example/app/assets/javascripts/application.js
94
+ - example/app/assets/stylesheets/application.css
95
+ - example/app/controllers/application_controller.rb
96
+ - example/app/controllers/concerns/.keep
97
+ - example/app/controllers/orders_controller.rb
98
+ - example/app/controllers/uploads_controller.rb
99
+ - example/app/helpers/application_helper.rb
100
+ - example/app/mailers/.keep
101
+ - example/app/models/.keep
102
+ - example/app/models/concerns/.keep
103
+ - example/app/models/order.rb
104
+ - example/app/views/layouts/application.html.erb
105
+ - example/bin/bundle
106
+ - example/bin/rails
107
+ - example/bin/rake
108
+ - example/bin/spring
109
+ - example/config.ru
110
+ - example/config/application.rb
111
+ - example/config/boot.rb
112
+ - example/config/database.yml
113
+ - example/config/environment.rb
114
+ - example/config/environments/development.rb
115
+ - example/config/environments/production.rb
116
+ - example/config/environments/test.rb
117
+ - example/config/initializers/backtrace_silencers.rb
118
+ - example/config/initializers/cookies_serializer.rb
119
+ - example/config/initializers/filter_parameter_logging.rb
120
+ - example/config/initializers/inflections.rb
121
+ - example/config/initializers/mime_types.rb
122
+ - example/config/initializers/session_store.rb
123
+ - example/config/initializers/wrap_parameters.rb
124
+ - example/config/locales/en.yml
125
+ - example/config/routes.rb
126
+ - example/config/secrets.yml
127
+ - example/db/migrate/20140616151047_create_orders.rb
128
+ - example/db/schema.rb
129
+ - example/db/seeds.rb
130
+ - example/lib/assets/.keep
131
+ - example/lib/tasks/.keep
132
+ - example/log/.keep
133
+ - example/public/404.html
134
+ - example/public/422.html
135
+ - example/public/500.html
136
+ - example/public/favicon.ico
137
+ - example/public/robots.txt
138
+ - example/spec/acceptance/orders_spec.rb
139
+ - example/spec/acceptance/uploads_spec.rb
140
+ - example/spec/acceptance_helper.rb
141
+ - example/spec/fixtures/file.png
142
+ - example/spec/rails_helper.rb
143
+ - example/spec/spec_helper.rb
144
+ - example/vendor/assets/javascripts/.keep
145
+ - example/vendor/assets/stylesheets/.keep
146
+ - lib/apidoc_to_gfm.rb
147
+ - lib/apidoc_to_gfm/version.rb
148
+ - lib/apidoc_to_gfm/views.rb
149
+ - lib/apidoc_to_gfm/views/example.rb
150
+ - lib/apidoc_to_gfm/views/helpers.rb
151
+ - lib/apidoc_to_gfm/views/index.rb
152
+ - lib/apidoc_to_gfm/writers.rb
153
+ - lib/apidoc_to_gfm/writers/writer.rb
154
+ - templates/rspec_api_documentation/gfm_example.mustache
155
+ - templates/rspec_api_documentation/gfm_index.mustache
156
+ homepage: https://github.com/mr-dxdy/apidoc_to_gfm.git
157
+ licenses:
158
+ - MIT
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ! '>='
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.6.10
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: An template for rspec_api_documentation
180
+ test_files: []