apipie-rails 0.5.17 → 0.5.20

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 855ada05457368ea7521d46865242c73a15c33a33546d7b0dac1d2b90d779c70
4
- data.tar.gz: 0cc30d4f4a38a476cab6ed92b6a4a00c45bd2036c8b35fb8373fbb215fb2ea80
3
+ metadata.gz: f03c36e5a39960d1394d5c46fbda7dc5b95394860b31e9850746b35cf54069d2
4
+ data.tar.gz: ef86bead84c3da5b9f51f2064ea9572b04c8bc1dc361f82a2c074d6b895ea57b
5
5
  SHA512:
6
- metadata.gz: 9b0ba79aee65ed21249fa35336166783697719fabc74831816513ea1d0b91162bde342b51fad08121ea38c27f5015bbf196ac524049dcbbc8635dd0a57f13cff
7
- data.tar.gz: 0f9f593ee579dba0baf16175e8c9d916dd370eba6a5c37cee4df2a92dea1efe0ea936b2444597274dd327244063000bb3a9cff454413956cd98bd27c5652afc6
6
+ metadata.gz: 0a6fc972abb448496bbed54576bb6afceeda7aa555caa2836134435b6047c9dccd0b0b5f9d4256301ee06954f850fc84e1dee0b8b615428ca3029cb302f4be18
7
+ data.tar.gz: 541f09ee30bd58ef7a88da099d68cb095ad3c0e1929bb9fe75d1f41320daf7188161b2bcdfe36a1017e81777f0cf181c1253be4cf53878acf7291f6c3974463f
@@ -0,0 +1,40 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: build
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-20.04
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby:
19
+ - 2.7
20
+ - 2.6
21
+ gemfile:
22
+ - Gemfile.rails42
23
+ - Gemfile.rails52 # Min ruby 2.2.2
24
+ - Gemfile.rails60 # Min ruby 2.5.0
25
+ - Gemfile.rails61 # Min ruby 2.5.0
26
+ exclude:
27
+ - gemfile: Gemfile.rails42
28
+ ruby: 2.7
29
+ - gemfile: Gemfile.rails52
30
+ ruby: 2.7
31
+
32
+ env:
33
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}
34
+ steps:
35
+ - uses: actions/checkout@v2
36
+ - uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ matrix.ruby }}
39
+ bundler-cache: true
40
+ - run: bundle exec rspec
data/.gitignore CHANGED
@@ -12,3 +12,4 @@ Gemfile.local
12
12
  .ruby-gemset
13
13
 
14
14
  .DS_Store
15
+ rel-eng/.ipynb_checkpoints
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  Changelog
2
2
  ===========
3
+ ## [v0.5.20](https://github.com/Apipie/apipie-rails/tree/v0.5.20) (2022-03-16)
4
+ [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v0.5.19...v0.5.20)
5
+ * Update rel-eng (Oleh Fedorenko)
6
+ * Deprecate travis, run tests on github actions [#740](https://github.com/Apipie/apipie-rails/pull/740) (Mathieu Jobin)
7
+ * Update validator.rb [#739](https://github.com/Apipie/apipie-rails/pull/739) (Dmytro Budnyk)
8
+ * Fix wrong number of arguments for recorder#process [#725](https://github.com/Apipie/apipie-rails/pull/725) (rob mathews)
9
+ * Change "an" to "a" [#723](https://github.com/Apipie/apipie-rails/pull/723) (Naokimi)
10
+
11
+ ## [v0.5.19](https://github.com/Apipie/apipie-rails/tree/v0.5.19) (2021-07-25)
12
+ [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v0.5.18...v0.5.19)
13
+ * Add rel-eng notebook (Oleh Fedorenko)
14
+ * Correct the word parâmentros for brazilian portuguese [#687](https://github.com/Apipie/apipie-rails/pull/687) (Diego Noronha)
15
+ * Fix depreciated file.exists. [#721](https://github.com/Apipie/apipie-rails/pull/721) (Diane Delallée)
16
+ * Fix typo in changelog [#703](https://github.com/Apipie/apipie-rails/pull/703) (Pavel Rodionov)
17
+ * Add rails 6.1 support in doc generation [#702](https://github.com/Apipie/apipie-rails/pull/702) (andrew-newell)
18
+
19
+
20
+ [v0.5.18](https://github.com/Apipie/apipie-rails/tree/v0.5.18) (2020-05-20)
21
+ --------
22
+
23
+ [Full Changelog](https://github.com/Apipie/apipie-rails/compare/v0.5.17...v0.5.18)
24
+
25
+ - Optional rdoc dependency with lazyload [\#683](https://github.com/Apipie/apipie-rails/pull/683) ([vkrizan](https://github.com/vkrizan))
3
26
 
4
27
  [v0.5.17](https://github.com/Apipie/apipie-rails/tree/v0.5.17) (2020-01-20)
5
28
  --------
data/Gemfile CHANGED
@@ -1 +1 @@
1
- ./Gemfile.rails50
1
+ ./Gemfile.rails61
data/README.rst CHANGED
@@ -387,20 +387,20 @@ Example:
387
387
  end
388
388
  end
389
389
 
390
- api :POST, "/users", "Create an user"
390
+ api :POST, "/users", "Create a user"
391
391
  param_group :user
392
392
  def create
393
393
  # ...
394
394
  end
395
395
 
396
- api :PUT, "/users/:id", "Update an user"
396
+ api :PUT, "/users/:id", "Update a user"
397
397
  param_group :user
398
398
  def update
399
399
  # ...
400
400
  end
401
401
 
402
402
  # v2/users_controller.rb
403
- api :POST, "/users", "Create an user"
403
+ api :POST, "/users", "Create a user"
404
404
  param_group :user, V1::UsersController
405
405
  def create
406
406
  # ...
@@ -434,7 +434,7 @@ Example
434
434
  end
435
435
  end
436
436
 
437
- api :POST, "/users", "Create an user"
437
+ api :POST, "/users", "Create a user"
438
438
  param_group :user
439
439
  def create
440
440
  # ...
@@ -446,7 +446,7 @@ Example
446
446
  # ...
447
447
  end
448
448
 
449
- api :PUT, "/users/:id", "Update an user"
449
+ api :PUT, "/users/:id", "Update a user"
450
450
  param_group :user
451
451
  def update
452
452
  # ...
@@ -16,7 +16,7 @@
16
16
  optional: opcional
17
17
  nil_allowed: nulo permitido
18
18
  param_name: Nome parâmetro
19
- params: Parâmentros
19
+ params: Parâmetros
20
20
  examples: Exemplos
21
21
  metadata: Metadado
22
22
  errors: Erros
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gemspec
3
+ gemspec path: '..'
4
4
 
5
5
  gem 'rails', '~> 4.2.5'
6
6
  gem 'mime-types', '~> 2.99.3'
@@ -11,4 +11,4 @@ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
11
11
  gem 'rdoc', '~> 4.2.2'
12
12
  end
13
13
 
14
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
14
+ gem 'test_engine', path: '../spec/dummy/components/test_engine', group: :test
@@ -0,0 +1,160 @@
1
+ PATH
2
+ remote: ../spec/dummy/components/test_engine
3
+ specs:
4
+ test_engine (0.0.1)
5
+
6
+ PATH
7
+ remote: ..
8
+ specs:
9
+ apipie-rails (0.5.19)
10
+ rails (>= 4.1)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ RedCloth (4.3.2)
16
+ actionmailer (4.2.11.3)
17
+ actionpack (= 4.2.11.3)
18
+ actionview (= 4.2.11.3)
19
+ activejob (= 4.2.11.3)
20
+ mail (~> 2.5, >= 2.5.4)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ actionpack (4.2.11.3)
23
+ actionview (= 4.2.11.3)
24
+ activesupport (= 4.2.11.3)
25
+ rack (~> 1.6)
26
+ rack-test (~> 0.6.2)
27
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
+ actionview (4.2.11.3)
30
+ activesupport (= 4.2.11.3)
31
+ builder (~> 3.1)
32
+ erubis (~> 2.7.0)
33
+ rails-dom-testing (~> 1.0, >= 1.0.5)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
+ activejob (4.2.11.3)
36
+ activesupport (= 4.2.11.3)
37
+ globalid (>= 0.3.0)
38
+ activemodel (4.2.11.3)
39
+ activesupport (= 4.2.11.3)
40
+ builder (~> 3.1)
41
+ activerecord (4.2.11.3)
42
+ activemodel (= 4.2.11.3)
43
+ activesupport (= 4.2.11.3)
44
+ arel (~> 6.0)
45
+ activesupport (4.2.11.3)
46
+ i18n (~> 0.7)
47
+ minitest (~> 5.1)
48
+ thread_safe (~> 0.3, >= 0.3.4)
49
+ tzinfo (~> 1.1)
50
+ addressable (2.8.0)
51
+ public_suffix (>= 2.0.2, < 5.0)
52
+ arel (6.0.4)
53
+ builder (3.2.4)
54
+ concurrent-ruby (1.1.9)
55
+ crass (1.0.6)
56
+ diff-lcs (1.5.0)
57
+ erubis (2.7.0)
58
+ globalid (0.4.2)
59
+ activesupport (>= 4.2.0)
60
+ i18n (0.9.5)
61
+ concurrent-ruby (~> 1.0)
62
+ json-schema (2.8.1)
63
+ addressable (>= 2.4)
64
+ loofah (2.13.0)
65
+ crass (~> 1.0.2)
66
+ nokogiri (>= 1.5.9)
67
+ mail (2.7.1)
68
+ mini_mime (>= 0.1.1)
69
+ maruku (0.7.3)
70
+ mime-types (2.99.3)
71
+ mini_mime (1.1.2)
72
+ mini_portile2 (2.7.1)
73
+ minitest (5.15.0)
74
+ nokogiri (1.13.1)
75
+ mini_portile2 (~> 2.7.0)
76
+ racc (~> 1.4)
77
+ psych (4.0.3)
78
+ stringio
79
+ public_suffix (4.0.6)
80
+ racc (1.6.0)
81
+ rack (1.6.13)
82
+ rack-test (0.6.3)
83
+ rack (>= 1.0)
84
+ rails (4.2.11.3)
85
+ actionmailer (= 4.2.11.3)
86
+ actionpack (= 4.2.11.3)
87
+ actionview (= 4.2.11.3)
88
+ activejob (= 4.2.11.3)
89
+ activemodel (= 4.2.11.3)
90
+ activerecord (= 4.2.11.3)
91
+ activesupport (= 4.2.11.3)
92
+ bundler (>= 1.3.0, < 2.0)
93
+ railties (= 4.2.11.3)
94
+ sprockets-rails
95
+ rails-deprecated_sanitizer (1.0.4)
96
+ activesupport (>= 4.2.0.alpha)
97
+ rails-dom-testing (1.0.9)
98
+ activesupport (>= 4.2.0, < 5.0)
99
+ nokogiri (~> 1.6)
100
+ rails-deprecated_sanitizer (>= 1.0.1)
101
+ rails-html-sanitizer (1.4.2)
102
+ loofah (~> 2.3)
103
+ railties (4.2.11.3)
104
+ actionpack (= 4.2.11.3)
105
+ activesupport (= 4.2.11.3)
106
+ rake (>= 0.8.7)
107
+ thor (>= 0.18.1, < 2.0)
108
+ rake (13.0.6)
109
+ rdoc (6.4.0)
110
+ psych (>= 4.0.0)
111
+ rspec-core (3.9.3)
112
+ rspec-support (~> 3.9.3)
113
+ rspec-expectations (3.9.4)
114
+ diff-lcs (>= 1.2.0, < 2.0)
115
+ rspec-support (~> 3.9.0)
116
+ rspec-mocks (3.9.1)
117
+ diff-lcs (>= 1.2.0, < 2.0)
118
+ rspec-support (~> 3.9.0)
119
+ rspec-rails (3.9.1)
120
+ actionpack (>= 3.0)
121
+ activesupport (>= 3.0)
122
+ railties (>= 3.0)
123
+ rspec-core (~> 3.9.0)
124
+ rspec-expectations (~> 3.9.0)
125
+ rspec-mocks (~> 3.9.0)
126
+ rspec-support (~> 3.9.0)
127
+ rspec-support (3.9.4)
128
+ sprockets (4.0.2)
129
+ concurrent-ruby (~> 1.0)
130
+ rack (> 1, < 3)
131
+ sprockets-rails (3.2.2)
132
+ actionpack (>= 4.0)
133
+ activesupport (>= 4.0)
134
+ sprockets (>= 3.0.0)
135
+ sqlite3 (1.3.13)
136
+ stringio (3.0.1)
137
+ thor (1.2.1)
138
+ thread_safe (0.3.6)
139
+ tzinfo (1.2.9)
140
+ thread_safe (~> 0.1)
141
+
142
+ PLATFORMS
143
+ ruby
144
+
145
+ DEPENDENCIES
146
+ RedCloth
147
+ apipie-rails!
148
+ json-schema (~> 2.8)
149
+ maruku
150
+ mime-types (~> 2.99.3)
151
+ minitest
152
+ rails (~> 4.2.5)
153
+ rake
154
+ rdoc
155
+ rspec-rails (~> 3.0)
156
+ sqlite3 (~> 1.3.6)
157
+ test_engine!
158
+
159
+ BUNDLED WITH
160
+ 1.17.3
@@ -0,0 +1,9 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'rails', '~> 5.2.6'
6
+ gem 'mime-types', '~> 2.99.3'
7
+ gem 'rails-controller-testing'
8
+
9
+ gem 'test_engine', path: '../spec/dummy/components/test_engine', group: :test
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'rails', '~> 6.0.2'
6
+ gem 'mime-types', '~> 2.99.3'
7
+ gem 'rails-controller-testing'
8
+ gem 'rspec-rails', '~> 4.0.2'
9
+
10
+ gem 'test_engine', path: '../spec/dummy/components/test_engine', group: :test
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'rails', '~> 6.1.1'
6
+ gem 'mime-types', '~> 2.99.3'
7
+ gem 'rails-controller-testing'
8
+ gem 'rspec-rails', '~> 4.0.2'
9
+
10
+ gem 'test_engine', path: '../spec/dummy/components/test_engine', group: :test
@@ -150,8 +150,8 @@ module Apipie
150
150
  end
151
151
 
152
152
  module FunctionalTestRecording
153
- def process(*args) # action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
154
- ret = super(*args)
153
+ def process(*, **) # action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
154
+ ret = super
155
155
  if Apipie.configuration.record
156
156
  Apipie::Extractor.call_recorder.analyze_functional_test(self)
157
157
  Apipie::Extractor.call_finished
data/lib/apipie/markup.rb CHANGED
@@ -4,20 +4,23 @@ module Apipie
4
4
 
5
5
  class RDoc
6
6
 
7
- def initialize
8
- require 'rdoc'
9
- require 'rdoc/markup/to_html'
10
- if Gem::Version.new(::RDoc::VERSION) < Gem::Version.new('4.0.0')
11
- @rdoc ||= ::RDoc::Markup::ToHtml.new()
12
- else
13
- @rdoc ||= ::RDoc::Markup::ToHtml.new(::RDoc::Options.new)
14
- end
15
- end
16
-
17
7
  def to_html(text)
18
- @rdoc.convert(text)
8
+ rdoc.convert(text)
19
9
  end
20
10
 
11
+ private
12
+
13
+ def rdoc
14
+ @rdoc ||= begin
15
+ require 'rdoc'
16
+ require 'rdoc/markup/to_html'
17
+ if Gem::Version.new(::RDoc::VERSION) < Gem::Version.new('4.0.0')
18
+ ::RDoc::Markup::ToHtml.new()
19
+ else
20
+ ::RDoc::Markup::ToHtml.new(::RDoc::Options.new)
21
+ end
22
+ end
23
+ end
21
24
  end
22
25
 
23
26
  class Markdown
@@ -3,7 +3,7 @@ module Apipie
3
3
 
4
4
  module Validator
5
5
 
6
- # to create new validator, inherit from Apipie::Validator::Base
6
+ # to create new validator, inherit from Apipie::Validator::BaseValidator
7
7
  # and implement class method build and instance method validate
8
8
  class BaseValidator
9
9
 
@@ -1,3 +1,3 @@
1
1
  module Apipie
2
- VERSION = '0.5.17'
2
+ VERSION = "0.5.20"
3
3
  end
@@ -172,7 +172,12 @@ namespace :apipie do
172
172
  layouts_paths = [File.expand_path("../../../app/views/layouts", __FILE__)]
173
173
  layouts_paths.unshift("#{Rails.root}/app/views/layouts") if File.directory?("#{Rails.root}/app/views/layouts/apipie")
174
174
 
175
- @apipie_renderer = ActionView::Base.new(base_paths + layouts_paths)
175
+ if ActionView::Base.respond_to?(:with_empty_template_cache) && ActionView::Base.respond_to?(:with_view_paths)
176
+ @apipie_renderer = ActionView::Base.with_empty_template_cache.with_view_paths(base_paths + layouts_paths)
177
+ else
178
+ @apipie_renderer = ActionView::Base.new(base_paths + layouts_paths)
179
+ end
180
+
176
181
  @apipie_renderer.singleton_class.send(:include, ApipieHelper)
177
182
  return @apipie_renderer
178
183
  end
@@ -210,14 +215,14 @@ namespace :apipie do
210
215
  end
211
216
 
212
217
  def generate_json_page(file_base, doc, lang = nil)
213
- FileUtils.mkdir_p(file_base) unless File.exists?(file_base)
218
+ FileUtils.mkdir_p(file_base) unless File.exist?(file_base)
214
219
 
215
220
  filename = "schema_apipie#{lang_ext(lang)}.json"
216
221
  File.open("#{file_base}/#{filename}", 'w') { |file| file.write(JSON.pretty_generate(doc)) }
217
222
  end
218
223
 
219
224
  def generate_swagger_json_page(file_base, doc, sfx="", lang = nil)
220
- FileUtils.mkdir_p(file_base) unless File.exists?(file_base)
225
+ FileUtils.mkdir_p(file_base) unless File.exist?(file_base)
221
226
 
222
227
  path = Pathname.new("#{file_base}/schema_swagger#{sfx}#{lang_ext(lang)}.json")
223
228
  File.open(path, 'w') { |file| file.write(JSON.pretty_generate(doc)) }
@@ -226,21 +231,21 @@ namespace :apipie do
226
231
  end
227
232
 
228
233
  def generate_one_page(file_base, doc, lang = nil)
229
- FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
234
+ FileUtils.mkdir_p(File.dirname(file_base)) unless File.exist?(File.dirname(file_base))
230
235
 
231
236
  render_page("#{file_base}-onepage#{lang_ext(lang)}.html", "static", {:doc => doc[:docs],
232
237
  :language => lang, :languages => Apipie.configuration.languages})
233
238
  end
234
239
 
235
240
  def generate_plain_page(file_base, doc, lang = nil)
236
- FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
241
+ FileUtils.mkdir_p(File.dirname(file_base)) unless File.exist?(File.dirname(file_base))
237
242
 
238
243
  render_page("#{file_base}-plain#{lang_ext(lang)}.html", "plain", {:doc => doc[:docs],
239
244
  :language => lang, :languages => Apipie.configuration.languages}, nil)
240
245
  end
241
246
 
242
247
  def generate_index_page(file_base, doc, include_json = false, show_versions = false, lang = nil)
243
- FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
248
+ FileUtils.mkdir_p(File.dirname(file_base)) unless File.exist?(File.dirname(file_base))
244
249
  versions = show_versions && Apipie.available_versions
245
250
  render_page("#{file_base}#{lang_ext(lang)}.html", "index", {:doc => doc[:docs],
246
251
  :versions => versions, :language => lang, :languages => Apipie.configuration.languages})
@@ -251,7 +256,7 @@ namespace :apipie do
251
256
  def generate_resource_pages(version, file_base, doc, include_json = false, lang = nil)
252
257
  doc[:docs][:resources].each do |resource_name, _|
253
258
  resource_file_base = File.join(file_base, resource_name.to_s)
254
- FileUtils.mkdir_p(File.dirname(resource_file_base)) unless File.exists?(File.dirname(resource_file_base))
259
+ FileUtils.mkdir_p(File.dirname(resource_file_base)) unless File.exist?(File.dirname(resource_file_base))
255
260
 
256
261
  doc = Apipie.to_json(version, resource_name, nil, lang)
257
262
  doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
@@ -265,7 +270,7 @@ namespace :apipie do
265
270
  doc[:docs][:resources].each do |resource_name, resource_params|
266
271
  resource_params[:methods].each do |method|
267
272
  method_file_base = File.join(file_base, resource_name.to_s, method[:name].to_s)
268
- FileUtils.mkdir_p(File.dirname(method_file_base)) unless File.exists?(File.dirname(method_file_base))
273
+ FileUtils.mkdir_p(File.dirname(method_file_base)) unless File.exist?(File.dirname(method_file_base))
269
274
 
270
275
  doc = Apipie.to_json(version, resource_name, method[:name], lang)
271
276
  doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
@@ -329,7 +334,7 @@ MESSAGE
329
334
  desc "Convert your examples from the old yaml into the new json format"
330
335
  task :convert_examples => :environment do
331
336
  yaml_examples_file = File.join(Rails.root, Apipie.configuration.doc_path, "apipie_examples.yml")
332
- if File.exists?(yaml_examples_file)
337
+ if File.exist?(yaml_examples_file)
333
338
  #if SafeYAML gem is enabled, it will load examples as an array of Hash, instead of hash
334
339
  if defined? SafeYAML
335
340
  examples = YAML.load_file(yaml_examples_file, :safe=>false)
@@ -0,0 +1,398 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "## Release of apipie-rails gem\n",
8
+ "\n",
9
+ "### Requirements\n",
10
+ "- push access to https://github.com/Apipie/apipie-rails\n",
11
+ "- push access to rubygems.org for apipie-rails\n",
12
+ "- sudo yum install python-slugify asciidoc\n",
13
+ "- ensure neither the `git push` or `gem push` don't require interractive auth. If you can't use api key or ssh key to auth skip these steps and run them form the shell manually\n",
14
+ "- ensure all checks have passed on the branch you're about to release\n",
15
+ "\n",
16
+ "### Release process\n",
17
+ "- Follow the steps with `<Shift>+<Enter>` or `<Ctrl>+<Enter>,<Down>`\n",
18
+ "- If anything fails, fix it and re-run the step if applicable\n",
19
+ "\n",
20
+ "### Release settings"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "code",
25
+ "execution_count": null,
26
+ "metadata": {},
27
+ "outputs": [],
28
+ "source": [
29
+ "%autosave 0"
30
+ ]
31
+ },
32
+ {
33
+ "cell_type": "code",
34
+ "execution_count": null,
35
+ "metadata": {},
36
+ "outputs": [],
37
+ "source": [
38
+ "%cd .."
39
+ ]
40
+ },
41
+ {
42
+ "cell_type": "markdown",
43
+ "metadata": {},
44
+ "source": [
45
+ "### Update the following notebook settings"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "code",
50
+ "execution_count": null,
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "NEW_VERSION = '0.5.20'\n",
55
+ "LAST_VERSION = '0.5.19'\n",
56
+ "GIT_REMOTE_UPSTREAM = 'origin'\n",
57
+ "STABLE_RELEASE = False\n",
58
+ "WORK_BRANCH = 'stable' if STABLE_RELEASE else 'master'\n",
59
+ "# Array of strings, e.g. [\"21cbsc214g3\", \"21casc214g3\"]\n",
60
+ "CHERRY_PICKS = []\n",
61
+ "GEMFILE='Gemfile.rails61'"
62
+ ]
63
+ },
64
+ {
65
+ "cell_type": "markdown",
66
+ "metadata": {},
67
+ "source": [
68
+ "### Ensure the repo is up to date"
69
+ ]
70
+ },
71
+ {
72
+ "cell_type": "code",
73
+ "execution_count": null,
74
+ "metadata": {},
75
+ "outputs": [],
76
+ "source": [
77
+ "! git checkout {WORK_BRANCH}"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "code",
82
+ "execution_count": null,
83
+ "metadata": {},
84
+ "outputs": [],
85
+ "source": [
86
+ "! git fetch {GIT_REMOTE_UPSTREAM}"
87
+ ]
88
+ },
89
+ {
90
+ "cell_type": "code",
91
+ "execution_count": null,
92
+ "metadata": {},
93
+ "outputs": [],
94
+ "source": [
95
+ "! git rebase {GIT_REMOTE_UPSTREAM}/{WORK_BRANCH}"
96
+ ]
97
+ },
98
+ {
99
+ "cell_type": "markdown",
100
+ "metadata": {},
101
+ "source": [
102
+ "### Cherry picks for stable release"
103
+ ]
104
+ },
105
+ {
106
+ "cell_type": "code",
107
+ "execution_count": null,
108
+ "metadata": {},
109
+ "outputs": [],
110
+ "source": [
111
+ "if STABLE_RELEASE:\n",
112
+ " for cp in CHERRY_PICKS:\n",
113
+ " ! git cherry-pick -x {cp}"
114
+ ]
115
+ },
116
+ {
117
+ "cell_type": "markdown",
118
+ "metadata": {},
119
+ "source": [
120
+ "### Run tests localy if your setup allows, otherwise ensure the HEAD is green"
121
+ ]
122
+ },
123
+ {
124
+ "cell_type": "code",
125
+ "execution_count": null,
126
+ "metadata": {},
127
+ "outputs": [],
128
+ "source": [
129
+ "! BUNDLE_GEMFILE=gemfiles/{GEMFILE} bundle update"
130
+ ]
131
+ },
132
+ {
133
+ "cell_type": "code",
134
+ "execution_count": null,
135
+ "metadata": {
136
+ "scrolled": true
137
+ },
138
+ "outputs": [],
139
+ "source": [
140
+ "! BUNDLE_GEMFILE=gemfiles/{GEMFILE} bundle exec rspec"
141
+ ]
142
+ },
143
+ {
144
+ "cell_type": "markdown",
145
+ "metadata": {},
146
+ "source": [
147
+ "### Update release related stuff"
148
+ ]
149
+ },
150
+ {
151
+ "cell_type": "code",
152
+ "execution_count": null,
153
+ "metadata": {},
154
+ "outputs": [],
155
+ "source": [
156
+ "! sed -i 's/VERSION = .*/VERSION = \"{NEW_VERSION}\"/' lib/apipie/version.rb"
157
+ ]
158
+ },
159
+ {
160
+ "cell_type": "code",
161
+ "execution_count": null,
162
+ "metadata": {},
163
+ "outputs": [],
164
+ "source": [
165
+ "# Parse git changelog\n",
166
+ "from IPython.display import Markdown as md\n",
167
+ "from subprocess import check_output\n",
168
+ "from shlex import split\n",
169
+ "import re\n",
170
+ "\n",
171
+ "def format_log_entry(entry):\n",
172
+ " author = re.search(r'author:(.*)', entry).group(1)\n",
173
+ " entry = re.sub(r'author:(.*)', '', entry)\n",
174
+ " entry = re.sub(r'([fF]ixes|[rR]efs)[^-]*-\\s*(.*)', r'\\2', entry)\n",
175
+ " entry = '* ' + entry.capitalize()\n",
176
+ " entry = re.sub(r'\\(#([0-9]+)\\)', r'[#\\1](https://github.com/Apipie/apipie-rails/pull/\\1)', entry)\n",
177
+ " entry = entry + f'({author})'\n",
178
+ " return entry\n",
179
+ "\n",
180
+ "def skip(entry):\n",
181
+ " if re.match(r'Merge pull', entry) or \\\n",
182
+ " re.match(r'^i18n', entry) or \\\n",
183
+ " re.match(r'^Bump to version', entry):\n",
184
+ " return True\n",
185
+ " else:\n",
186
+ " return False \n",
187
+ "git_log_cmd = 'git log --pretty=format:\"%%s author:%%an\" v%s..HEAD' % LAST_VERSION\n",
188
+ "log = check_output(split(git_log_cmd)).decode('utf8').split('\\n')\n",
189
+ "change_log = [format_log_entry(e) for e in log if not skip(e)]\n",
190
+ "md('\\n'.join(change_log))\n"
191
+ ]
192
+ },
193
+ {
194
+ "cell_type": "code",
195
+ "execution_count": null,
196
+ "metadata": {},
197
+ "outputs": [],
198
+ "source": [
199
+ "# Write release notes\n",
200
+ "from datetime import datetime\n",
201
+ "import fileinput\n",
202
+ "import sys\n",
203
+ "\n",
204
+ "fh = fileinput.input('CHANGELOG.md', inplace=True) \n",
205
+ "for line in fh: \n",
206
+ " print(line.rstrip())\n",
207
+ " if re.match(r'========', line):\n",
208
+ " print('## [v%s](https://github.com/Apipie/apipie-rails/tree/v%s) (%s)' % (NEW_VERSION, NEW_VERSION, datetime.today().strftime('%Y-%m-%d')))\n",
209
+ " print('[Full Changelog](https://github.com/Apipie/apipie-rails/compare/v%s...v%s)' % (LAST_VERSION, NEW_VERSION))\n",
210
+ " for entry in change_log:\n",
211
+ " print(entry)\n",
212
+ " print('')\n",
213
+ "fh.close() "
214
+ ]
215
+ },
216
+ {
217
+ "cell_type": "markdown",
218
+ "metadata": {},
219
+ "source": [
220
+ "#### Manual step: Update deps in the gemspec if neccessary"
221
+ ]
222
+ },
223
+ {
224
+ "cell_type": "markdown",
225
+ "metadata": {},
226
+ "source": [
227
+ "### Check what is going to be commited"
228
+ ]
229
+ },
230
+ {
231
+ "cell_type": "code",
232
+ "execution_count": null,
233
+ "metadata": {
234
+ "scrolled": false
235
+ },
236
+ "outputs": [],
237
+ "source": [
238
+ "! git add -u\n",
239
+ "! git status"
240
+ ]
241
+ },
242
+ {
243
+ "cell_type": "code",
244
+ "execution_count": null,
245
+ "metadata": {
246
+ "scrolled": true
247
+ },
248
+ "outputs": [],
249
+ "source": [
250
+ "! git diff --cached"
251
+ ]
252
+ },
253
+ {
254
+ "cell_type": "markdown",
255
+ "metadata": {},
256
+ "source": [
257
+ "### Commit changes"
258
+ ]
259
+ },
260
+ {
261
+ "cell_type": "code",
262
+ "execution_count": null,
263
+ "metadata": {
264
+ "scrolled": true
265
+ },
266
+ "outputs": [],
267
+ "source": [
268
+ "! git commit -m \"Bump to {NEW_VERSION}\""
269
+ ]
270
+ },
271
+ {
272
+ "cell_type": "markdown",
273
+ "metadata": {},
274
+ "source": [
275
+ "### Tag new version"
276
+ ]
277
+ },
278
+ {
279
+ "cell_type": "code",
280
+ "execution_count": null,
281
+ "metadata": {},
282
+ "outputs": [],
283
+ "source": [
284
+ "! git tag {NEW_VERSION}"
285
+ ]
286
+ },
287
+ {
288
+ "cell_type": "markdown",
289
+ "metadata": {},
290
+ "source": [
291
+ "### Build the gem"
292
+ ]
293
+ },
294
+ {
295
+ "cell_type": "code",
296
+ "execution_count": null,
297
+ "metadata": {},
298
+ "outputs": [],
299
+ "source": [
300
+ "! BUNDLE_GEMFILE=gemfiles/{GEMFILE} bundle exec rake build"
301
+ ]
302
+ },
303
+ {
304
+ "cell_type": "code",
305
+ "execution_count": null,
306
+ "metadata": {},
307
+ "outputs": [],
308
+ "source": [
309
+ "! gem push pkg/apipie-rails-{NEW_VERSION}.gem"
310
+ ]
311
+ },
312
+ {
313
+ "cell_type": "markdown",
314
+ "metadata": {},
315
+ "source": [
316
+ "### PUSH the changes upstream If everything is correct"
317
+ ]
318
+ },
319
+ {
320
+ "cell_type": "code",
321
+ "execution_count": null,
322
+ "metadata": {},
323
+ "outputs": [],
324
+ "source": [
325
+ "! git push {GIT_REMOTE_UPSTREAM} {WORK_BRANCH}"
326
+ ]
327
+ },
328
+ {
329
+ "cell_type": "code",
330
+ "execution_count": null,
331
+ "metadata": {},
332
+ "outputs": [],
333
+ "source": [
334
+ "! git push --tags {GIT_REMOTE_UPSTREAM} {WORK_BRANCH}"
335
+ ]
336
+ },
337
+ {
338
+ "cell_type": "markdown",
339
+ "metadata": {},
340
+ "source": [
341
+ "#### Now the new release is in upstream repo"
342
+ ]
343
+ },
344
+ {
345
+ "cell_type": "markdown",
346
+ "metadata": {},
347
+ "source": [
348
+ "### Some manual steps follow to improve the UX\n",
349
+ "\n",
350
+ "#### New relase on GitHub\n",
351
+ "\n",
352
+ "Copy the following changelog lines to the description in form on link below\n",
353
+ "The release title is the new version."
354
+ ]
355
+ },
356
+ {
357
+ "cell_type": "code",
358
+ "execution_count": null,
359
+ "metadata": {},
360
+ "outputs": [],
361
+ "source": [
362
+ "print('\\n')\n",
363
+ "print('\\n'.join(change_log))\n",
364
+ "print('\\n\\nhttps://github.com/Apipie/apipie-rails/releases/new?tag=%s' % NEW_VERSION)"
365
+ ]
366
+ },
367
+ {
368
+ "cell_type": "markdown",
369
+ "metadata": {},
370
+ "source": [
371
+ "## Congratulations\n",
372
+ "\n",
373
+ "Release is public now."
374
+ ]
375
+ }
376
+ ],
377
+ "metadata": {
378
+ "kernelspec": {
379
+ "display_name": "Python 3",
380
+ "language": "python",
381
+ "name": "python3"
382
+ },
383
+ "language_info": {
384
+ "codemirror_mode": {
385
+ "name": "ipython",
386
+ "version": 3
387
+ },
388
+ "file_extension": ".py",
389
+ "mimetype": "text/x-python",
390
+ "name": "python",
391
+ "nbconvert_exporter": "python",
392
+ "pygments_lexer": "ipython3",
393
+ "version": "3.6.8"
394
+ }
395
+ },
396
+ "nbformat": 4,
397
+ "nbformat_minor": 2
398
+ }
@@ -0,0 +1,15 @@
1
+ if RUBY_VERSION >= '2.6.0'
2
+ if Rails.version < '5'
3
+ # rubocop:disable Style/CommentAnnotation
4
+ class ActionController::TestResponse < ActionDispatch::TestResponse
5
+ def recycle!
6
+ # hack to avoid MonitorMixin double-initialize error:
7
+ @mon_mutex_owner_object_id = nil
8
+ @mon_mutex = nil
9
+ initialize
10
+ end
11
+ end
12
+ # rubocop:enable Style/CommentAnnotation
13
+ end
14
+ end
15
+
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apipie-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.17
4
+ version: 0.5.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Pokorny
8
8
  - Ivan Necas
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-10 00:00:00.000000000 Z
12
+ date: 2022-03-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -145,17 +145,12 @@ executables: []
145
145
  extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
+ - ".github/workflows/build.yml"
148
149
  - ".gitignore"
149
150
  - ".rspec"
150
- - ".travis.yml"
151
151
  - APACHE-LICENSE-2.0
152
152
  - CHANGELOG.md
153
153
  - Gemfile
154
- - Gemfile.rails41
155
- - Gemfile.rails42
156
- - Gemfile.rails50
157
- - Gemfile.rails51
158
- - Gemfile.rails60
159
154
  - MIT-LICENSE
160
155
  - NOTICE
161
156
  - PROPOSAL_FOR_RESPONSE_DESCRIPTIONS.md
@@ -202,6 +197,11 @@ files:
202
197
  - config/locales/tr.yml
203
198
  - config/locales/zh-CN.yml
204
199
  - config/locales/zh-TW.yml
200
+ - gemfiles/Gemfile.rails42
201
+ - gemfiles/Gemfile.rails42.lock
202
+ - gemfiles/Gemfile.rails52
203
+ - gemfiles/Gemfile.rails60
204
+ - gemfiles/Gemfile.rails61
205
205
  - images/screenshot-1.png
206
206
  - images/screenshot-2.png
207
207
  - lib/apipie-rails.rb
@@ -239,6 +239,7 @@ files:
239
239
  - lib/generators/apipie/install/templates/initializer.rb.erb
240
240
  - lib/generators/apipie/views_generator.rb
241
241
  - lib/tasks/apipie.rake
242
+ - rel-eng/gem_release.ipynb
242
243
  - rel-eng/packages/.readme
243
244
  - rel-eng/packages/rubygem-apipie-rails
244
245
  - rel-eng/tito.props
@@ -322,11 +323,12 @@ files:
322
323
  - spec/lib/validator_spec.rb
323
324
  - spec/lib/validators/array_validator_spec.rb
324
325
  - spec/spec_helper.rb
326
+ - spec/support/rails-42-ruby-26.rb
325
327
  - spec/support/rake.rb
326
328
  homepage: http://github.com/Apipie/apipie-rails
327
329
  licenses: []
328
330
  metadata: {}
329
- post_install_message:
331
+ post_install_message:
330
332
  rdoc_options: []
331
333
  require_paths:
332
334
  - lib
@@ -341,9 +343,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
341
343
  - !ruby/object:Gem::Version
342
344
  version: '0'
343
345
  requirements: []
344
- rubyforge_project:
345
- rubygems_version: 2.7.10
346
- signing_key:
346
+ rubygems_version: 3.1.2
347
+ signing_key:
347
348
  specification_version: 4
348
349
  summary: Rails REST API documentation tool
349
350
  test_files:
@@ -427,4 +428,5 @@ test_files:
427
428
  - spec/lib/validator_spec.rb
428
429
  - spec/lib/validators/array_validator_spec.rb
429
430
  - spec/spec_helper.rb
431
+ - spec/support/rails-42-ruby-26.rb
430
432
  - spec/support/rake.rb
data/.travis.yml DELETED
@@ -1,28 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- before_install: >-
4
- if ruby -v | grep 'ruby 2.2'; then
5
- gem install bundler -v '~> 1.17'
6
- fi
7
- rvm:
8
- - 2.2.10
9
- - 2.3.8
10
- - 2.4.5
11
- - 2.5.3
12
- - 2.6.0
13
- gemfile:
14
- - Gemfile.rails42
15
- - Gemfile.rails51 # Min ruby 2.2.2
16
- - Gemfile.rails60 # Min ruby 2.5.0
17
- matrix:
18
- exclude:
19
- - rvm: 2.5.3
20
- gemfile: Gemfile.rails42
21
- - rvm: 2.6.0
22
- gemfile: Gemfile.rails42
23
- - rvm: 2.2.10
24
- gemfile: Gemfile.rails60
25
- - rvm: 2.3.8
26
- gemfile: Gemfile.rails60
27
- - rvm: 2.4.5
28
- gemfile: Gemfile.rails60
data/Gemfile.rails41 DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.1.0'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails50 DELETED
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.0.0'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
-
9
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails51 DELETED
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.1.0.rc1'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
-
9
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test
data/Gemfile.rails60 DELETED
@@ -1,14 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 6.0.0.rc1'
6
- gem 'mime-types', '~> 2.99.3'
7
- gem 'rails-controller-testing'
8
- gem 'rspec-rails', git: 'https://github.com/rspec/rspec-rails', branch: '4-0-dev'
9
- gem 'rspec-core', git: 'https://github.com/rspec/rspec-core'
10
- gem 'rspec-mocks', git: 'https://github.com/rspec/rspec-mocks'
11
- gem 'rspec-support', git: 'https://github.com/rspec/rspec-support'
12
- gem 'rspec-expectations', git: 'https://github.com/rspec/rspec-expectations'
13
-
14
- gem 'test_engine', path: 'spec/dummy/components/test_engine', group: :test