jdoc 0.4.4 → 0.5.0

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: 2985c00f49d908beecf1c19950d19936e6e2cda00d3e252523b5f6c084471c34
4
- data.tar.gz: 21cfc1d002fbe5daa43cb72d663fd32f963dfb9538dcabbea251607681b9ef5c
3
+ metadata.gz: 4ee1b1514622a40fee3e0d8813c610f9f9c0bd31c97367693b2523663028a6f9
4
+ data.tar.gz: cbea57957aa93be238805ed0e7d6558fbef0405e53cffee35f0140d8a31b7701
5
5
  SHA512:
6
- metadata.gz: 06ab1757a35ecb7f108cfdcc0d9a67f5c2692bd2b39951bab5b8246c3e65f954f4bf745f35130d5272097cf29f9114ea80f349fad48c48dbe4a8b1a65051158b
7
- data.tar.gz: afdf9f5a2f4d24a88948b6eafe8910b12283f0f9df385bca89adeb8263f301dad3bafb97bd0621b63b6827fc1549eb0feebff44c2b678dabb9b4f1ef860e4b38
6
+ metadata.gz: 00b3b964522b6260e4e6da08fc9eebb409ccb9a52a5cac65f1a80b3f1da8ba2ae3cd4a65d64e58f0365bb035bdf494d07874bb342b94f59a439e13e70b44b255
7
+ data.tar.gz: 69408fbfdddb4e79f76e266aca7cb5992b12e684fb0258c62983040b2a598ec9397ae33a5b838953e5b15d3957664c416eaff24bf1307d11e026c0e3b44f3824
@@ -14,6 +14,8 @@ jobs:
14
14
  matrix:
15
15
  ruby:
16
16
  - '3.3'
17
+ - '3.4'
18
+ - '4.0'
17
19
  steps:
18
20
  - uses: actions/checkout@v3
19
21
  - name: Set up Ruby
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jdoc (0.4.4)
4
+ jdoc (0.5.0)
5
5
  activesupport
6
- erubis
6
+ erubi
7
7
  json_schema
8
8
  rack
9
9
  redcarpet
@@ -11,17 +11,21 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (7.1.2)
14
+ activesupport (7.1.6)
15
15
  base64
16
+ benchmark (>= 0.3)
16
17
  bigdecimal
17
18
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
19
  connection_pool (>= 2.2.5)
19
20
  drb
20
21
  i18n (>= 1.6, < 2)
22
+ logger (>= 1.4.2)
21
23
  minitest (>= 5.1)
22
24
  mutex_m
25
+ securerandom (>= 0.3)
23
26
  tzinfo (~> 2.0)
24
27
  base64 (0.2.0)
28
+ benchmark (0.5.0)
25
29
  bigdecimal (3.1.5)
26
30
  coderay (1.1.3)
27
31
  concurrent-ruby (1.2.2)
@@ -29,18 +33,22 @@ GEM
29
33
  diff-lcs (1.5.0)
30
34
  drb (2.2.0)
31
35
  ruby2_keywords
32
- erubis (2.7.0)
36
+ erubi (1.13.1)
33
37
  i18n (1.14.1)
34
38
  concurrent-ruby (~> 1.0)
35
39
  json_schema (0.21.0)
40
+ logger (1.7.0)
36
41
  method_source (1.0.0)
37
- minitest (5.21.1)
42
+ minitest (6.0.5)
43
+ drb (~> 2.0)
44
+ prism (~> 1.5)
38
45
  mutex_m (0.2.0)
46
+ prism (1.9.0)
39
47
  pry (0.14.2)
40
48
  coderay (~> 1.1)
41
49
  method_source (~> 1.0)
42
50
  rack (3.0.8)
43
- rake (13.1.0)
51
+ rake (13.4.2)
44
52
  redcarpet (3.6.0)
45
53
  rspec (3.12.0)
46
54
  rspec-core (~> 3.12.0)
@@ -56,6 +64,7 @@ GEM
56
64
  rspec-support (~> 3.12.0)
57
65
  rspec-support (3.12.1)
58
66
  ruby2_keywords (0.0.5)
67
+ securerandom (0.4.1)
59
68
  tzinfo (2.0.6)
60
69
  concurrent-ruby (~> 1.0)
61
70
 
@@ -67,7 +76,7 @@ DEPENDENCIES
67
76
  bundler (>= 1.6)
68
77
  jdoc!
69
78
  pry
70
- rake
79
+ rake (>= 13.2.0)
71
80
  rspec (>= 2.14.1)
72
81
 
73
82
  BUNDLED WITH
data/jdoc.gemspec CHANGED
@@ -17,12 +17,12 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ["lib"]
18
18
 
19
19
  spec.add_dependency "activesupport"
20
- spec.add_dependency "erubis"
20
+ spec.add_dependency "erubi"
21
21
  spec.add_dependency "json_schema"
22
22
  spec.add_dependency "rack"
23
23
  spec.add_dependency "redcarpet"
24
24
  spec.add_development_dependency "bundler", ">= 1.6"
25
25
  spec.add_development_dependency "pry"
26
- spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rake", ">= 13.2.0"
27
27
  spec.add_development_dependency "rspec", ">= 2.14.1"
28
28
  end
@@ -24,10 +24,10 @@ module Jdoc
24
24
  # @note Add some fix to adapt to GitHub anchor style
25
25
  # @return [String] Generated text
26
26
  def call
27
- markdown = markdown_renderer.result(schema: schema)
27
+ markdown = render_erb(markdown_template, schema: schema)
28
28
  if @html
29
29
  html = markdown_parser.render(markdown)
30
- html = html_renderer.result(body: html)
30
+ html = render_erb(html_template, body: html)
31
31
  html.gsub(/id="(.+)"/) {|text| text.tr("/:", "") }
32
32
  else
33
33
  markdown
@@ -38,9 +38,11 @@ module Jdoc
38
38
 
39
39
  private
40
40
 
41
- # @return [Erubis::Eruby] Renderer to render HTML that takes HTML string
42
- def html_renderer
43
- Erubis::Eruby.new(html_template)
41
+ # @return [String]
42
+ def render_erb(template, **variables)
43
+ b = binding
44
+ variables.each { |k, v| b.local_variable_set(k, v) }
45
+ eval(Erubi::Engine.new(template).src, b)
44
46
  end
45
47
 
46
48
  # @returns [String] Path to ERB template to render HTML
@@ -66,11 +68,6 @@ module Jdoc
66
68
  )
67
69
  end
68
70
 
69
- # @return [Erubis::Eruby] Renderer to render Markdown that takes schema data
70
- def markdown_renderer
71
- Erubis::Eruby.new(markdown_template)
72
- end
73
-
74
71
  # @return [String] Content of specified Markdown template
75
72
  def markdown_template
76
73
  File.read(markdown_template_path)
data/lib/jdoc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jdoc
2
- VERSION = "0.4.4"
2
+ VERSION = "0.5.0"
3
3
  end
data/lib/jdoc.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "active_support/core_ext/object/to_query"
2
2
  require "active_support/core_ext/string/inflections"
3
3
  require "cgi"
4
- require "erubis"
4
+ require "erubi"
5
5
  require "json_schema"
6
6
  require "redcarpet"
7
7
  require "rack"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-01-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -25,7 +24,7 @@ dependencies:
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: erubis
27
+ name: erubi
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
@@ -114,14 +113,14 @@ dependencies:
114
113
  requirements:
115
114
  - - ">="
116
115
  - !ruby/object:Gem::Version
117
- version: '0'
116
+ version: 13.2.0
118
117
  type: :development
119
118
  prerelease: false
120
119
  version_requirements: !ruby/object:Gem::Requirement
121
120
  requirements:
122
121
  - - ">="
123
122
  - !ruby/object:Gem::Version
124
- version: '0'
123
+ version: 13.2.0
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: rspec
127
126
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +135,6 @@ dependencies:
136
135
  - - ">="
137
136
  - !ruby/object:Gem::Version
138
137
  version: 2.14.1
139
- description:
140
138
  email:
141
139
  - r7kamura@gmail.com
142
140
  executables:
@@ -150,7 +148,6 @@ files:
150
148
  - ".github/workflows/github-label-sync.yml"
151
149
  - ".github/workflows/release.yml"
152
150
  - ".gitignore"
153
- - CHANGELOG.md
154
151
  - Gemfile
155
152
  - Gemfile.lock
156
153
  - LICENSE.txt
@@ -177,7 +174,6 @@ homepage: https://github.com/r7kamura/jdoc
177
174
  licenses:
178
175
  - MIT
179
176
  metadata: {}
180
- post_install_message:
181
177
  rdoc_options: []
182
178
  require_paths:
183
179
  - lib
@@ -192,8 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
188
  - !ruby/object:Gem::Version
193
189
  version: '0'
194
190
  requirements: []
195
- rubygems_version: 3.5.3
196
- signing_key:
191
+ rubygems_version: 3.6.9
197
192
  specification_version: 4
198
193
  summary: Generate API documentation from JSON Schema.
199
194
  test_files:
data/CHANGELOG.md DELETED
@@ -1,123 +0,0 @@
1
- ## 0.4.3
2
-
3
- - Add some CLI options (Thx @k1LoW)
4
-
5
- ## 0.4.2
6
-
7
- - Show reason phrase in response example (Thx @minodisk)
8
-
9
- ## 0.4.1
10
-
11
- - Use 204 for `mediaType: "null"`
12
-
13
- ## 0.4.0
14
-
15
- - Recognize `mediaType: 'null'` as "No response body"
16
-
17
- ## 0.3.4
18
-
19
- - Treat empty request parameters as no request body
20
-
21
- ## 0.3.3
22
-
23
- - Improve pattern format in properties section
24
-
25
- ## 0.3.2
26
-
27
- - Add generator options to change template
28
- - Add request parameters for each endpoint
29
-
30
- ## 0.3.1
31
-
32
- - Add error handling for ExampleNotFound
33
-
34
- ## 0.3.0
35
-
36
- - Change example response status and body to PUT & DELETE requests
37
- - Improve request path example by resolving variable in path
38
-
39
- ## 0.2.1
40
-
41
- - Support multipart/form-data
42
-
43
- ## 0.2.0
44
-
45
- - Show schema description on docs if exists
46
-
47
- ## 0.1.9
48
-
49
- - Support property that has no type
50
-
51
- ## 0.1.8
52
-
53
- - Support property that is an array of primitive values
54
-
55
- ## 0.1.7
56
-
57
- - Support query string example in GET request
58
- - Improve the description property visibility
59
-
60
- ## 0.1.6
61
-
62
- - Disable `<em>` feature of Redcarpet
63
-
64
- ## 0.1.5
65
-
66
- - Fix ToC link on HTML docs
67
-
68
- ## 0.1.4
69
-
70
- - Provide :html option to render docs in HTML
71
-
72
- ## 0.1.3
73
-
74
- - Use its pointer name if a resource has no title property
75
-
76
- ## 0.1.2
77
-
78
- - Use .schema property for request body if exists
79
- - Improve array resource handling
80
-
81
- ## 0.1.1
82
-
83
- - Support has-one relation
84
-
85
- ## 0.1.0
86
-
87
- - Show resources which have no links
88
-
89
- ## 0.0.9
90
-
91
- - Support array property
92
-
93
- ## 0.0.8
94
-
95
- - Fix resource equality
96
-
97
- ## 0.0.7
98
-
99
- - Support `false` & `null` example value
100
-
101
- ## 0.0.6
102
-
103
- - Use root API endpoint at example response
104
-
105
- ## 0.0.5
106
-
107
- - Remove dependency on multi_json
108
-
109
- ## 0.0.4
110
-
111
- - Support whitespace and multiple templates in href
112
-
113
- ## 0.0.3
114
-
115
- - Fix missing gem dependencies
116
-
117
- ## 0.0.2
118
-
119
- - Remove dependency on rack-spec
120
-
121
- ## 0.0.1
122
-
123
- - 1st Release