apipie-rails 0.5.17 → 0.5.20

Sign up to get free protection for your applications and to get access to all the features.
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