review-retrovert 0.9.11 → 0.10.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 +4 -4
- data/.editorconfig +1 -1
- data/.pinact.yaml +12 -0
- data/.ruby-version +1 -1
- data/Dockerfile +2 -1
- data/Dockerfile.local +13 -0
- data/Gemfile.lock +62 -35
- data/Rakefile +9 -0
- data/aqua.yaml +20 -0
- data/hooks/post_push +14 -1
- data/lib/review/retrovert/cli.rb +6 -0
- data/lib/review/retrovert/converter.rb +38 -0
- data/lib/review/retrovert/version.rb +1 -1
- data/lib/review/retrovert/yamlconfig.rb +38 -1
- data/review-retrovert.gemspec +18 -4
- data/zizmor.yml +5 -0
- metadata +53 -127
- data/.github/FUNDING.yml +0 -4
- data/.github/workflows/docker-build.yml +0 -26
- data/.github/workflows/release.yml +0 -26
- data/.github/workflows/retrovert.yml +0 -91
- data/testdata/mybook/.gitignore +0 -13
- data/testdata/mybook/.textlintrc +0 -11
- data/testdata/mybook/README.md +0 -43
- data/testdata/mybook/Rakefile +0 -24
- data/testdata/mybook/catalog.yml +0 -60
- data/testdata/mybook/config-noretrovert.yml +0 -404
- data/testdata/mybook/config-retrovert.yml +0 -16
- data/testdata/mybook/config-starter.yml +0 -264
- data/testdata/mybook/config.yml +0 -404
- data/testdata/mybook/contents/00-preface.re +0 -129
- data/testdata/mybook/contents/01-install.re +0 -305
- data/testdata/mybook/contents/02-tutorial.re +0 -1228
- data/testdata/mybook/contents/03-syntax.re +0 -4610
- data/testdata/mybook/contents/04-customize.re +0 -1064
- data/testdata/mybook/contents/05-faq.re +0 -606
- data/testdata/mybook/contents/06-bestpractice.re +0 -1343
- data/testdata/mybook/contents/91-compare.re +0 -418
- data/testdata/mybook/contents/92-filelist.re +0 -125
- data/testdata/mybook/contents/93-background.re +0 -267
- data/testdata/mybook/contents/99-postface.re +0 -39
- data/testdata/mybook/contents/r0-inner.re +0 -2
- data/testdata/mybook/contents/r0-root.re +0 -49
- data/testdata/mybook/contents/table.csv +0 -4
- data/testdata/mybook/contents/test.txt +0 -1
- data/testdata/mybook/contents/ut.re +0 -5
- data/testdata/mybook/css/normalize.css +0 -349
- data/testdata/mybook/css/webstyle.css +0 -692
- data/testdata/mybook/data/terms.txt +0 -3
- data/testdata/mybook/data/words.txt +0 -15
- data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
- data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
- data/testdata/mybook/images/03-syntax/index-page.png +0 -0
- data/testdata/mybook/images/03-syntax/order-detail.png +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
- data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
- data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
- data/testdata/mybook/images/04-customize/section_decoration_samples.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
- data/testdata/mybook/images/05-faq/dummy-image.png +0 -0
- data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
- data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
- data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
- data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
- data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
- data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
- data/testdata/mybook/images/06-bestpractice/section_title_wlines.png +0 -0
- data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
- data/testdata/mybook/images/93-background/bug913.png +0 -0
- data/testdata/mybook/images/93-background/slide2.png +0 -0
- data/testdata/mybook/images/avatar-b.png +0 -0
- data/testdata/mybook/images/avatar-g.png +0 -0
- data/testdata/mybook/images/avatar-r.png +0 -0
- data/testdata/mybook/images/caution-icon.png +0 -0
- data/testdata/mybook/images/cover_a5.pdf +0 -0
- data/testdata/mybook/images/cover_b5.pdf +0 -0
- data/testdata/mybook/images/info-icon.png +0 -0
- data/testdata/mybook/images/tw-icon.jpg +0 -0
- data/testdata/mybook/images/warning-icon.png +0 -0
- data/testdata/mybook/layouts/layout.epub.erb +0 -29
- data/testdata/mybook/layouts/layout.html5.erb +0 -108
- data/testdata/mybook/layouts/layout.tex.erb +0 -432
- data/testdata/mybook/layouts/layout.tex.erb.orig +0 -386
- data/testdata/mybook/lib/hooks/beforetexcompile.rb +0 -55
- data/testdata/mybook/lib/ruby/review-book.rb +0 -64
- data/testdata/mybook/lib/ruby/review-builder.rb +0 -1342
- data/testdata/mybook/lib/ruby/review-cli.rb +0 -58
- data/testdata/mybook/lib/ruby/review-compiler.rb +0 -1176
- data/testdata/mybook/lib/ruby/review-epubbuilder.rb +0 -33
- data/testdata/mybook/lib/ruby/review-epubmaker.rb +0 -609
- data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +0 -949
- data/testdata/mybook/lib/ruby/review-latexbuilder.rb +0 -1065
- data/testdata/mybook/lib/ruby/review-maker.rb +0 -346
- data/testdata/mybook/lib/ruby/review-markdownbuilder.rb +0 -945
- data/testdata/mybook/lib/ruby/review-markdownmaker.rb +0 -91
- data/testdata/mybook/lib/ruby/review-monkeypatch.rb +0 -93
- data/testdata/mybook/lib/ruby/review-pdfmaker.rb +0 -546
- data/testdata/mybook/lib/ruby/review-textbuilder.rb +0 -36
- data/testdata/mybook/lib/ruby/review-tocparser.rb +0 -285
- data/testdata/mybook/lib/ruby/review-webmaker.rb +0 -448
- data/testdata/mybook/lib/tasks/mytasks.rake +0 -31
- data/testdata/mybook/lib/tasks/review.rake +0 -156
- data/testdata/mybook/lib/tasks/review.rake.orig +0 -72
- data/testdata/mybook/lib/tasks/starter.rake +0 -470
- data/testdata/mybook/locale.yml +0 -6
- data/testdata/mybook/review-ext.rb +0 -206
- data/testdata/mybook/sty/indexstyle.ist +0 -25
- data/testdata/mybook/sty/jumoline.sty +0 -310
- data/testdata/mybook/sty/mycolophon.sty +0 -81
- data/testdata/mybook/sty/mystyle.sty +0 -8
- data/testdata/mybook/sty/mytextsize.sty +0 -94
- data/testdata/mybook/sty/mytitlepage.sty +0 -126
- data/testdata/mybook/sty/review-base.sty +0 -276
- data/testdata/mybook/sty/reviewmacro.sty +0 -60
- data/testdata/mybook/sty/starter-codeblock.sty +0 -463
- data/testdata/mybook/sty/starter-color.sty +0 -134
- data/testdata/mybook/sty/starter-font.sty +0 -112
- data/testdata/mybook/sty/starter-heading.sty +0 -561
- data/testdata/mybook/sty/starter-misc.sty +0 -894
- data/testdata/mybook/sty/starter-note.sty +0 -180
- data/testdata/mybook/sty/starter-section.sty +0 -262
- data/testdata/mybook/sty/starter-talklist.sty +0 -105
- data/testdata/mybook/sty/starter-toc.sty +0 -72
- data/testdata/mybook/sty/starter-util.sty +0 -39
- data/testdata/mybook/sty/starter.sty +0 -36
- data/testdata/mybook/sty/ut.sty +0 -26
- data/testdata/mybook/style.css +0 -597
- data/testdata/mybook/ut-catalog.yml +0 -61
- data/testdata/mybook/ut-config-starter.yml +0 -3
- data/testdata/mybook/ut-config.yml +0 -404
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 267dfed374168e87a304450363d3f2a65db553bf530c56a3484a72bf9f64911b
|
|
4
|
+
data.tar.gz: f773e8543b7dff305f22a857f3074550a793487aea4e252cc0514897b3937786
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ac9c51bb200a188acf201899dc1e9667b39df719fe5950a6c6a93f69107b6943d05dfc58699ba0482cc09c6376b17517ba47bc51003ff1e0a3f7b6300e6a674
|
|
7
|
+
data.tar.gz: 5020eb746cb8094e74036b7ba9d5a6bb77eadc52ac73e68f3ec0a0c22394eaf90b5ef3ffd0a1dd013226706bc1afedc60d364297798bca384cec74d457157cde
|
data/.editorconfig
CHANGED
data/.pinact.yaml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/suzuki-shunsuke/pinact/refs/heads/main/json-schema/pinact.json
|
|
2
|
+
# pinact - https://github.com/suzuki-shunsuke/pinact
|
|
3
|
+
version: 3
|
|
4
|
+
files:
|
|
5
|
+
# - pattern: action.yml
|
|
6
|
+
# - pattern: */action.yaml
|
|
7
|
+
|
|
8
|
+
ignore_actions:
|
|
9
|
+
# - name: slsa-framework/slsa-github-generator/\.github/workflows/generator_generic_slsa3\.yml
|
|
10
|
+
# ref: v\d+\.\d+\.\d+
|
|
11
|
+
- name: actions/.*
|
|
12
|
+
ref: v\d+
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.3.4
|
data/Dockerfile
CHANGED
data/Dockerfile.local
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
ARG REVIEW_VERSION=latest
|
|
2
|
+
FROM vvakame/review:${REVIEW_VERSION}
|
|
3
|
+
|
|
4
|
+
# Copy source code and build from local workspace
|
|
5
|
+
COPY . /tmp/review-retrovert/
|
|
6
|
+
|
|
7
|
+
# Build and install from local source
|
|
8
|
+
RUN cd /tmp/review-retrovert && \
|
|
9
|
+
gem build review-retrovert.gemspec && \
|
|
10
|
+
gem install --no-document review-retrovert-*.gem && \
|
|
11
|
+
rm -rf /tmp/review-retrovert
|
|
12
|
+
|
|
13
|
+
ENTRYPOINT [ "review-retrovert" ]
|
data/Gemfile.lock
CHANGED
|
@@ -1,30 +1,44 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
review-retrovert (0.
|
|
4
|
+
review-retrovert (0.10.0)
|
|
5
|
+
csv
|
|
6
|
+
nkf
|
|
5
7
|
review (>= 3.0.0)
|
|
8
|
+
rexml
|
|
6
9
|
thor
|
|
7
10
|
|
|
8
11
|
GEM
|
|
9
12
|
remote: https://rubygems.org/
|
|
10
13
|
specs:
|
|
11
|
-
activesupport (
|
|
12
|
-
|
|
14
|
+
activesupport (8.1.1)
|
|
15
|
+
base64
|
|
16
|
+
bigdecimal
|
|
17
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
18
|
+
connection_pool (>= 2.2.5)
|
|
19
|
+
drb
|
|
13
20
|
i18n (>= 1.6, < 2)
|
|
21
|
+
json
|
|
22
|
+
logger (>= 1.4.2)
|
|
14
23
|
minitest (>= 5.1)
|
|
15
|
-
|
|
16
|
-
|
|
24
|
+
securerandom (>= 0.3)
|
|
25
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
26
|
+
uri (>= 0.13.1)
|
|
17
27
|
aruba (1.0.4)
|
|
18
28
|
childprocess (>= 2.0, < 5.0)
|
|
19
29
|
contracts (~> 0.16.0)
|
|
20
30
|
cucumber (>= 2.4, < 6.0)
|
|
21
31
|
rspec-expectations (~> 3.4)
|
|
22
32
|
thor (~> 1.0)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
base64 (0.3.0)
|
|
34
|
+
bigdecimal (4.0.1)
|
|
35
|
+
builder (3.3.0)
|
|
36
|
+
childprocess (4.1.0)
|
|
37
|
+
concurrent-ruby (1.3.6)
|
|
38
|
+
connection_pool (3.0.2)
|
|
39
|
+
contracts (0.16.1)
|
|
40
|
+
csv (3.3.5)
|
|
41
|
+
cucumber (5.3.0)
|
|
28
42
|
builder (~> 3.2, >= 3.2.4)
|
|
29
43
|
cucumber-core (~> 8.0, >= 8.0.1)
|
|
30
44
|
cucumber-create-meta (~> 2.0, >= 2.0.2)
|
|
@@ -55,54 +69,67 @@ GEM
|
|
|
55
69
|
cucumber-core (~> 8.0, >= 8.0.1)
|
|
56
70
|
cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
|
|
57
71
|
cucumber-messages (~> 13.0, >= 13.0.1)
|
|
58
|
-
diff-lcs (1.
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
diff-lcs (1.6.2)
|
|
73
|
+
drb (2.2.3)
|
|
74
|
+
ffi (1.17.3)
|
|
75
|
+
i18n (1.14.8)
|
|
61
76
|
concurrent-ruby (~> 1.0)
|
|
62
|
-
image_size (
|
|
77
|
+
image_size (3.4.0)
|
|
78
|
+
json (2.18.0)
|
|
79
|
+
logger (1.7.0)
|
|
80
|
+
memoist3 (1.0.0)
|
|
63
81
|
middleware (0.1.0)
|
|
64
|
-
minitest (
|
|
82
|
+
minitest (6.0.1)
|
|
83
|
+
prism (~> 1.5)
|
|
65
84
|
multi_test (0.1.2)
|
|
85
|
+
nkf (0.2.0)
|
|
66
86
|
pastel (0.8.0)
|
|
67
87
|
tty-color (~> 0.5)
|
|
88
|
+
prism (1.7.0)
|
|
68
89
|
protobuf-cucumber (3.10.8)
|
|
69
90
|
activesupport (>= 3.2)
|
|
70
91
|
middleware
|
|
71
92
|
thor
|
|
72
93
|
thread_safe
|
|
73
94
|
rake (12.3.3)
|
|
74
|
-
review (5.
|
|
95
|
+
review (5.10.0)
|
|
96
|
+
csv
|
|
75
97
|
image_size
|
|
98
|
+
nkf
|
|
99
|
+
rexml
|
|
76
100
|
rouge
|
|
77
101
|
rubyzip
|
|
78
102
|
tty-logger
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
rspec-
|
|
83
|
-
rspec-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
103
|
+
rexml (3.4.4)
|
|
104
|
+
rouge (4.7.0)
|
|
105
|
+
rspec (3.13.2)
|
|
106
|
+
rspec-core (~> 3.13.0)
|
|
107
|
+
rspec-expectations (~> 3.13.0)
|
|
108
|
+
rspec-mocks (~> 3.13.0)
|
|
109
|
+
rspec-core (3.13.6)
|
|
110
|
+
rspec-support (~> 3.13.0)
|
|
111
|
+
rspec-expectations (3.13.5)
|
|
87
112
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
-
rspec-support (~> 3.
|
|
89
|
-
rspec-mocks (3.
|
|
113
|
+
rspec-support (~> 3.13.0)
|
|
114
|
+
rspec-mocks (3.13.7)
|
|
90
115
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
91
|
-
rspec-support (~> 3.
|
|
92
|
-
rspec-support (3.
|
|
93
|
-
ruby-debug-ide (0.7.
|
|
116
|
+
rspec-support (~> 3.13.0)
|
|
117
|
+
rspec-support (3.13.6)
|
|
118
|
+
ruby-debug-ide (0.7.5)
|
|
94
119
|
rake (>= 0.8.1)
|
|
95
|
-
rubyzip (
|
|
96
|
-
|
|
120
|
+
rubyzip (3.2.2)
|
|
121
|
+
securerandom (0.4.1)
|
|
122
|
+
sys-uname (1.4.1)
|
|
97
123
|
ffi (~> 1.1)
|
|
98
|
-
|
|
124
|
+
memoist3 (~> 1.0.0)
|
|
125
|
+
thor (1.4.0)
|
|
99
126
|
thread_safe (0.3.6)
|
|
100
127
|
tty-color (0.6.0)
|
|
101
128
|
tty-logger (0.6.0)
|
|
102
129
|
pastel (~> 0.8)
|
|
103
|
-
tzinfo (2.0.
|
|
130
|
+
tzinfo (2.0.6)
|
|
104
131
|
concurrent-ruby (~> 1.0)
|
|
105
|
-
|
|
132
|
+
uri (1.1.1)
|
|
106
133
|
|
|
107
134
|
PLATFORMS
|
|
108
135
|
ruby
|
|
@@ -115,4 +142,4 @@ DEPENDENCIES
|
|
|
115
142
|
ruby-debug-ide
|
|
116
143
|
|
|
117
144
|
BUNDLED WITH
|
|
118
|
-
2.
|
|
145
|
+
2.5.11
|
data/Rakefile
CHANGED
|
@@ -4,3 +4,12 @@ require "rspec/core/rake_task"
|
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
|
5
5
|
|
|
6
6
|
task :default => :spec
|
|
7
|
+
|
|
8
|
+
# Override the source_control_push task to skip git push
|
|
9
|
+
# This is useful when releasing from CI where the tag is already pushed
|
|
10
|
+
Rake::Task["release:source_control_push"].clear
|
|
11
|
+
namespace :release do
|
|
12
|
+
task :source_control_push do
|
|
13
|
+
# Do nothing - tag is already pushed by CI
|
|
14
|
+
end
|
|
15
|
+
end
|
data/aqua.yaml
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/aqua-yaml.json
|
|
3
|
+
# aqua - Declarative CLI Version Manager
|
|
4
|
+
# https://aquaproj.github.io/
|
|
5
|
+
# checksum:
|
|
6
|
+
# enabled: true
|
|
7
|
+
# require_checksum: true
|
|
8
|
+
# supported_envs:
|
|
9
|
+
# - all
|
|
10
|
+
registries:
|
|
11
|
+
- type: standard
|
|
12
|
+
ref: v4.451.1 # renovate: depName=aquaproj/aqua-registry
|
|
13
|
+
packages:
|
|
14
|
+
- name: suzuki-shunsuke/pinact@v3.8.0
|
|
15
|
+
tags:
|
|
16
|
+
- dev
|
|
17
|
+
- name: crates.io/zizmor@1.19.0
|
|
18
|
+
tags:
|
|
19
|
+
- dev
|
|
20
|
+
- ci
|
data/hooks/post_push
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
set -eu
|
|
3
3
|
|
|
4
|
+
# Get review-retrovert version and Re:VIEW version
|
|
5
|
+
VERSION=$(docker run --rm ${IMAGE_NAME} version)
|
|
6
|
+
REVIEW_VERSION=$(docker run --rm ${IMAGE_NAME} review-version)
|
|
7
|
+
|
|
4
8
|
if [ "${DOCKER_TAG}" = "latest" ]; then
|
|
5
|
-
|
|
9
|
+
# For latest tag, push retrovert version tag
|
|
6
10
|
docker tag ${IMAGE_NAME} ${DOCKER_REPO}:${VERSION}
|
|
7
11
|
docker push ${DOCKER_REPO}:${VERSION}
|
|
12
|
+
# Also push combined tag with Re:VIEW version (e.g., 0.10.0-review5.10)
|
|
13
|
+
COMBINED_TAG="${VERSION}-review${REVIEW_VERSION}"
|
|
14
|
+
docker tag ${IMAGE_NAME} ${DOCKER_REPO}:${COMBINED_TAG}
|
|
15
|
+
docker push ${DOCKER_REPO}:${COMBINED_TAG}
|
|
16
|
+
else
|
|
17
|
+
# For review version tags (e.g., 5.9), push combined tag (e.g., 0.10.0-review5.9)
|
|
18
|
+
COMBINED_TAG="${VERSION}-review${DOCKER_TAG}"
|
|
19
|
+
docker tag ${IMAGE_NAME} ${DOCKER_REPO}:${COMBINED_TAG}
|
|
20
|
+
docker push ${DOCKER_REPO}:${COMBINED_TAG}
|
|
8
21
|
fi
|
data/lib/review/retrovert/cli.rb
CHANGED
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
|
|
3
|
+
# For Ruby 3.1+ compatibility with review 5.3 and earlier
|
|
4
|
+
# These versions don't support safe YAML loading with permitted_classes
|
|
5
|
+
module YAML
|
|
6
|
+
class << self
|
|
7
|
+
alias_method :original_load_file, :load_file
|
|
8
|
+
alias_method :original_safe_load, :safe_load
|
|
9
|
+
|
|
10
|
+
def load_file(path, *args, **kwargs)
|
|
11
|
+
if kwargs.empty? && args.empty?
|
|
12
|
+
original_load_file(path, permitted_classes: [Date, Time, Symbol], permitted_symbols: [], aliases: true)
|
|
13
|
+
else
|
|
14
|
+
original_load_file(path, *args, **kwargs)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Handle both old positional args (review 5.3 and earlier) and new keyword args
|
|
19
|
+
# Old format: YAML.safe_load(yaml, permitted_classes, permitted_symbols, aliases, filename)
|
|
20
|
+
# New format: YAML.safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false)
|
|
21
|
+
def safe_load(yaml, *args, **kwargs)
|
|
22
|
+
if kwargs.empty?
|
|
23
|
+
if args.empty?
|
|
24
|
+
original_safe_load(yaml, permitted_classes: [Date, Time, Symbol], permitted_symbols: [], aliases: true)
|
|
25
|
+
else
|
|
26
|
+
# Convert old positional args to new keyword args format
|
|
27
|
+
permitted_classes = args[0].is_a?(Array) ? args[0] : [Date, Time, Symbol]
|
|
28
|
+
permitted_symbols = args[1].is_a?(Array) ? args[1] : []
|
|
29
|
+
aliases = args[2].nil? ? true : args[2]
|
|
30
|
+
original_safe_load(yaml, permitted_classes: permitted_classes + [Date, Time, Symbol], permitted_symbols: permitted_symbols, aliases: aliases)
|
|
31
|
+
end
|
|
32
|
+
else
|
|
33
|
+
original_safe_load(yaml, *args, **kwargs)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
1
39
|
require 'review'
|
|
2
40
|
require 'erb'
|
|
3
41
|
require 'fileutils'
|
|
@@ -84,9 +84,27 @@ module ReVIEW
|
|
|
84
84
|
FileUtils.copy(File.expand_path(current_file, @basedir), File.join(outdir, current_file))
|
|
85
85
|
}
|
|
86
86
|
@basedir = outdir
|
|
87
|
+
# Only quote date fields for review 5.3 and earlier (< 5.4.0)
|
|
88
|
+
# These versions have YAML Date parsing issues with Ruby 3.1+
|
|
89
|
+
if Gem::Version.new(ReVIEW::VERSION) < Gem::Version.new('5.4.0')
|
|
90
|
+
quote_date_fields()
|
|
91
|
+
end
|
|
87
92
|
rewrite_retrovert_yml()
|
|
88
93
|
end
|
|
89
94
|
|
|
95
|
+
# Quote date fields to avoid YAML Date parsing issues with Ruby 3.1+ and review 5.3 or earlier
|
|
96
|
+
def quote_date_fields()
|
|
97
|
+
@config_files.each { |current_file|
|
|
98
|
+
yamlfile = File.join(@basedir, current_file)
|
|
99
|
+
content = File.read(yamlfile)
|
|
100
|
+
# Match date fields like "date: 2021-07-10" and quote them
|
|
101
|
+
content.gsub!(/^(\s*)(date|history):\s*(\d{4}-\d{2}-\d{2})\s*$/, '\1\2: "\3"')
|
|
102
|
+
# Match date in arrays like " - 2021-07-10"
|
|
103
|
+
content.gsub!(/^(\s*-\s*)(\d{4}-\d{2}-\d{2})\s*$/, '\1"\2"')
|
|
104
|
+
File.write(yamlfile, content)
|
|
105
|
+
}
|
|
106
|
+
end
|
|
107
|
+
|
|
90
108
|
def commentout(yamlfile, key)
|
|
91
109
|
content = File.read(yamlfile)
|
|
92
110
|
content.gsub!(/^(\s*)#{key}:(.*)$/, "#\\1#{key}:\\2")
|
|
@@ -128,6 +146,11 @@ module ReVIEW
|
|
|
128
146
|
retrovert = yaml['retrovert']
|
|
129
147
|
yaml.deep_merge!(retrovert)
|
|
130
148
|
yaml.delete('retrovert')
|
|
149
|
+
# Convert Date/Time objects to strings to avoid YAML loading issues
|
|
150
|
+
# with Ruby 3.1+ and review 5.3 or earlier
|
|
151
|
+
if Gem::Version.new(ReVIEW::VERSION) < Gem::Version.new('5.4.0')
|
|
152
|
+
yaml = convert_dates_to_strings(yaml)
|
|
153
|
+
end
|
|
131
154
|
# YAML.dump(yaml, File.open(yamlfile, "w"))
|
|
132
155
|
content = Psych.dump(yaml)
|
|
133
156
|
content.gsub!('---','')
|
|
@@ -135,9 +158,23 @@ module ReVIEW
|
|
|
135
158
|
}
|
|
136
159
|
end
|
|
137
160
|
|
|
161
|
+
# Recursively convert Date and Time objects to ISO 8601 strings
|
|
162
|
+
def convert_dates_to_strings(obj)
|
|
163
|
+
case obj
|
|
164
|
+
when Hash
|
|
165
|
+
obj.transform_values { |v| convert_dates_to_strings(v) }
|
|
166
|
+
when Array
|
|
167
|
+
obj.map { |v| convert_dates_to_strings(v) }
|
|
168
|
+
when Date, Time
|
|
169
|
+
obj.strftime('%Y-%m-%d')
|
|
170
|
+
else
|
|
171
|
+
obj
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
138
175
|
def load_yaml(filepath)
|
|
139
176
|
begin
|
|
140
|
-
yaml = YAML.load_file(filepath)
|
|
177
|
+
yaml = YAML.load_file(filepath, permitted_classes: [Date, Time])
|
|
141
178
|
rescue => e
|
|
142
179
|
error "load error #{e.message}"
|
|
143
180
|
end
|
data/review-retrovert.gemspec
CHANGED
|
@@ -10,7 +10,11 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.description = %q{Re:VIEW Starter to Re:VIEW}
|
|
11
11
|
spec.homepage = "https://github.com/srz-zumix/review-retrovert"
|
|
12
12
|
spec.license = "MIT"
|
|
13
|
-
|
|
13
|
+
if RUBY_VERSION >= '2.6.0'
|
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
|
|
15
|
+
else
|
|
16
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
|
17
|
+
end
|
|
14
18
|
|
|
15
19
|
# spec.metadata["allowed_push_host"] = "http://mygemserver.com"
|
|
16
20
|
|
|
@@ -21,17 +25,27 @@ Gem::Specification.new do |spec|
|
|
|
21
25
|
# Specify which files should be added to the gem when it is released.
|
|
22
26
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
23
27
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
24
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(
|
|
28
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(.github|testdata|spec|features)/}) }
|
|
25
29
|
end
|
|
26
30
|
spec.bindir = "exe"
|
|
27
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
28
32
|
spec.require_paths = ["lib"]
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
# thor 1.3+ requires Ruby >= 2.6.0
|
|
35
|
+
if RUBY_VERSION >= '2.6.0'
|
|
36
|
+
spec.add_dependency "thor"
|
|
37
|
+
else
|
|
38
|
+
spec.add_dependency "thor", "~> 1.2.2"
|
|
39
|
+
end
|
|
40
|
+
# Required for Ruby 3.4+ where these gems are no longer default gems
|
|
41
|
+
# Necessary for compatibility with review versions 5.4 and earlier
|
|
42
|
+
spec.add_dependency "rexml"
|
|
43
|
+
spec.add_dependency "csv"
|
|
44
|
+
spec.add_dependency "nkf"
|
|
31
45
|
spec.add_development_dependency "rspec", ['~> 3.0']
|
|
32
46
|
spec.add_development_dependency "rake", ['~> 12.0']
|
|
33
47
|
spec.add_development_dependency 'aruba', ['~> 1.0.2']
|
|
34
48
|
spec.add_development_dependency "ruby-debug-ide"
|
|
35
|
-
#
|
|
49
|
+
#spec.add_development_dependency "debase"
|
|
36
50
|
spec.add_runtime_dependency "review", ['>= 3.0.0']
|
|
37
51
|
end
|