super_tools 4.0.1 → 4.0.3

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: 1d1e0b59e703770a0f9814a9c2cdf430c8c59ad2c829f051c225efc391371d62
4
- data.tar.gz: 6ed2cd40f528a32dac21da1a8e989e23aa3934b8738202081bc06c46692d86c9
3
+ metadata.gz: 39bcc1ba7188e1b278df713bd06acf49dfa40fbf20eb2ee471b570c0c91c4345
4
+ data.tar.gz: 30cbd102aa42cde3a536b28d5f3e739ace6dbdc15f245ec368d4fc37c44c2e7f
5
5
  SHA512:
6
- metadata.gz: 65b7559d21d89aee15e0cc5e4c524cd75337da56653a3ddcf8b1bc9bf686a2cad32b31c3c9683daa89fb64368d58e5db20c05a5cc775f8d66327fc2d203f0059
7
- data.tar.gz: 6cdf1ddf5bf91ed407a3881bddfd041df0ad68e7e73e554461ac2d741c45aa4c478d3e974d0df493bdc953ccb0f650867a2b5ac756bdd62821dac77bb4d1ddfb
6
+ metadata.gz: 77472e70b18b2b6aab947a151b87f38d59f852388afbe6655ff66b7b93ea7e4fe85b44f5e0b273093f079511b17aa19885be98d202ebad7d14f2069fe5e5c813
7
+ data.tar.gz: 847c33d3904078c2e46800ccfdfd2cf826a63d03136d853a3af20041d665e2474b4330a2fc6022f107e80a3834b15245c3fad8fff379ff6510ac15cb7f77465f
@@ -0,0 +1,118 @@
1
+ name: Publish gem
2
+
3
+ # master 上 gemspec 版本號尚未發佈到 rubygems.org 時,自動以 Trusted Publishing (OIDC) 發佈。
4
+ # 版本已存在則跳過;不使用任何儲存的 RubyGems API key。
5
+ on:
6
+ push:
7
+ branches:
8
+ - master
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ concurrency:
15
+ group: publish-gem-${{ github.repository }}
16
+ cancel-in-progress: false
17
+
18
+ env:
19
+ # 與 test.yml 的 Ruby 3.4 / Rails 8.1 矩陣一致(根目錄 Gemfile.lock 的 nokogiri 1.15.7 不支援 Ruby >= 3.3)
20
+ RUBY_VERSION: '3.4.11'
21
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/ruby_3.4_rails_8.1.gemfile
22
+
23
+ jobs:
24
+ check:
25
+ name: Check version on rubygems.org
26
+ runs-on: ubuntu-latest
27
+ outputs:
28
+ should_publish: ${{ steps.check.outputs.should_publish }}
29
+ gem_name: ${{ steps.spec.outputs.name }}
30
+ gem_version: ${{ steps.spec.outputs.version }}
31
+ steps:
32
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
33
+ with:
34
+ persist-credentials: false
35
+
36
+ - uses: ruby/setup-ruby@b1da4809b005e0178fe08a1d57317bffc00b7b4c # v1.332.0
37
+ with:
38
+ ruby-version: ${{ env.RUBY_VERSION }}
39
+
40
+ - name: Read gem name and version from gemspec
41
+ id: spec
42
+ run: |
43
+ ruby -e 'spec = Gem::Specification.load(Dir["*.gemspec"].first) or abort("cannot load gemspec"); puts "name=#{spec.name}"; puts "version=#{spec.version}"' >> "$GITHUB_OUTPUT"
44
+ cat "$GITHUB_OUTPUT"
45
+
46
+ - name: Check whether this version already exists on rubygems.org
47
+ id: check
48
+ env:
49
+ GEM_NAME: ${{ steps.spec.outputs.name }}
50
+ GEM_VERSION: ${{ steps.spec.outputs.version }}
51
+ run: |
52
+ set -euo pipefail
53
+ status=$(curl -sS -o versions.json -w '%{http_code}' "https://rubygems.org/api/v1/versions/${GEM_NAME}.json")
54
+ if [ "$status" = "404" ]; then
55
+ echo "Gem ${GEM_NAME} not found on rubygems.org; will publish."
56
+ echo "should_publish=true" >> "$GITHUB_OUTPUT"
57
+ exit 0
58
+ fi
59
+ if [ "$status" != "200" ]; then
60
+ echo "::error::rubygems.org API returned HTTP ${status}"
61
+ exit 1
62
+ fi
63
+ if jq -e --arg v "$GEM_VERSION" 'any(.[]; .number == $v)' versions.json > /dev/null; then
64
+ echo "${GEM_NAME} ${GEM_VERSION} already on rubygems.org; skip publish."
65
+ echo "should_publish=false" >> "$GITHUB_OUTPUT"
66
+ else
67
+ echo "${GEM_NAME} ${GEM_VERSION} not on rubygems.org yet; will publish."
68
+ echo "should_publish=true" >> "$GITHUB_OUTPUT"
69
+ fi
70
+
71
+ test:
72
+ name: Test (Ruby 3.4 / Rails 8.1)
73
+ needs: check
74
+ if: needs.check.outputs.should_publish == 'true'
75
+ runs-on: ubuntu-latest
76
+ steps:
77
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
78
+ with:
79
+ persist-credentials: false
80
+
81
+ - uses: ruby/setup-ruby@b1da4809b005e0178fe08a1d57317bffc00b7b4c # v1.332.0
82
+ with:
83
+ ruby-version: ${{ env.RUBY_VERSION }}
84
+ bundler-cache: true
85
+
86
+ - run: bundle exec rake t
87
+
88
+ publish:
89
+ name: Publish ${{ needs.check.outputs.gem_name }} ${{ needs.check.outputs.gem_version }}
90
+ needs: [check, test]
91
+ if: needs.check.outputs.should_publish == 'true' && github.ref == 'refs/heads/master'
92
+ runs-on: ubuntu-latest
93
+ environment: gem-publish
94
+ permissions:
95
+ id-token: write # Trusted Publishing (OIDC)
96
+ contents: write # rake release 推送 vX.Y.Z tag
97
+ steps:
98
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
99
+ with:
100
+ persist-credentials: false
101
+
102
+ - uses: ruby/setup-ruby@b1da4809b005e0178fe08a1d57317bffc00b7b4c # v1.332.0
103
+ with:
104
+ ruby-version: ${{ env.RUBY_VERSION }}
105
+ bundler-cache: true
106
+
107
+ # setup-ruby 的 bundler-cache 會把 BUNDLE_PATH 等設定寫進已被 git 追蹤的
108
+ # gemfiles/.bundle/config,導致 rake release 的 guard_clean 判定工作目錄不乾淨。
109
+ # 這只是 CI 執行時的本機設定,不屬於發佈內容,故標記為 assume-unchanged。
110
+ - name: Ignore CI-only bundler config change
111
+ run: |
112
+ git status --porcelain
113
+ git update-index --assume-unchanged gemfiles/.bundle/config
114
+ git status --porcelain
115
+
116
+ # 透過 rubygems/configure-rubygems-credentials 取得短效 OIDC token,
117
+ # 再執行 bundle exec rake release(build、建立並推送 vX.Y.Z tag、push gem)
118
+ - uses: rubygems/release-gem@7f9650160c1a4e7989fdc9855807bdbd421d8b6b # v1.4.1
@@ -30,6 +30,16 @@ jobs:
30
30
  gemfile: gemfiles/ruby_3.1_rails_6.gemfile
31
31
  - ruby: '3.1.7'
32
32
  gemfile: gemfiles/ruby_3.1_rails_7.gemfile
33
+ # Ruby 3.3.12 + Rails 8
34
+ - ruby: '3.3.12'
35
+ gemfile: gemfiles/ruby_3.3_rails_8.0.gemfile
36
+ - ruby: '3.3.12'
37
+ gemfile: gemfiles/ruby_3.3_rails_8.1.gemfile
38
+ # Ruby 3.4.11 + Rails 8
39
+ - ruby: '3.4.11'
40
+ gemfile: gemfiles/ruby_3.4_rails_8.0.gemfile
41
+ - ruby: '3.4.11'
42
+ gemfile: gemfiles/ruby_3.4_rails_8.1.gemfile
33
43
  env:
34
44
  BUNDLE_GEMFILE: ${{ matrix.gemfile }}
35
45
  steps:
data/Appraisals CHANGED
@@ -27,3 +27,27 @@ end
27
27
  appraise "ruby-3.1-rails-7" do
28
28
  gem "rails", "~> 7.0.0"
29
29
  end
30
+
31
+ # Ruby 3.3 with Rails 8.0.5.1
32
+ appraise "ruby-3.3-rails-8.0" do
33
+ gem "rails", "8.0.5.1"
34
+ gem "sqlite3", ">= 1.7", "< 3"
35
+ end
36
+
37
+ # Ruby 3.3 with Rails 8.1.3.1
38
+ appraise "ruby-3.3-rails-8.1" do
39
+ gem "rails", "8.1.3.1"
40
+ gem "sqlite3", ">= 1.7", "< 3"
41
+ end
42
+
43
+ # Ruby 3.4 with Rails 8.0.5.1
44
+ appraise "ruby-3.4-rails-8.0" do
45
+ gem "rails", "8.0.5.1"
46
+ gem "sqlite3", ">= 1.7", "< 3"
47
+ end
48
+
49
+ # Ruby 3.4 with Rails 8.1.3.1
50
+ appraise "ruby-3.4-rails-8.1" do
51
+ gem "rails", "8.1.3.1"
52
+ gem "sqlite3", ">= 1.7", "< 3"
53
+ end
data/Gemfile.lock CHANGED
@@ -10,13 +10,14 @@ GIT
10
10
  PATH
11
11
  remote: .
12
12
  specs:
13
- super_tools (4.0.0)
13
+ super_tools (4.0.3)
14
+ csv
14
15
  dry-logic (= 1.2.0)
15
16
  dry-types (= 1.5.1)
16
17
  fast_excel
17
18
  forwardable
18
19
  nokogiri (>= 1.6)
19
- rails (>= 6.1, < 8)
20
+ rails (>= 6.1, < 8.2)
20
21
  reform (= 2.6.2)
21
22
  reform-rails
22
23
  roo
@@ -103,6 +104,7 @@ GEM
103
104
  descendants_tracker (~> 0.0.1)
104
105
  concurrent-ruby (1.3.6)
105
106
  crass (1.0.6)
107
+ csv (3.3.6)
106
108
  date (3.5.1)
107
109
  declarative (0.0.20)
108
110
  descendants_tracker (0.0.4)
@@ -151,6 +153,7 @@ GEM
151
153
  marcel (1.1.0)
152
154
  method_source (1.1.0)
153
155
  mini_mime (1.1.5)
156
+ mini_portile2 (2.8.9)
154
157
  minitest (5.26.1)
155
158
  net-imap (0.4.23)
156
159
  date
@@ -162,6 +165,9 @@ GEM
162
165
  net-smtp (0.5.1)
163
166
  net-protocol
164
167
  nio4r (2.7.5)
168
+ nokogiri (1.15.7)
169
+ mini_portile2 (~> 2.8.2)
170
+ racc (~> 1.4)
165
171
  nokogiri (1.15.7-arm64-darwin)
166
172
  racc (~> 1.4)
167
173
  nokogiri (1.15.7-x86_64-linux)
@@ -232,7 +238,8 @@ GEM
232
238
  actionpack (>= 6.1)
233
239
  activesupport (>= 6.1)
234
240
  sprockets (>= 3.0.0)
235
- sqlite3 (1.4.4)
241
+ sqlite3 (1.7.3-arm64-darwin)
242
+ sqlite3 (1.7.3-x86_64-linux)
236
243
  thor (1.2.1)
237
244
  thread_safe (0.3.6)
238
245
  timeout (0.6.0)
@@ -265,9 +272,9 @@ DEPENDENCIES
265
272
  rake (>= 12.2)
266
273
  reform-rails!
267
274
  shoulda-context
268
- sqlite3 (= 1.4.4)
275
+ sqlite3 (>= 1.4, < 2)
269
276
  super_tools!
270
277
  warning
271
278
 
272
279
  BUNDLED WITH
273
- 2.3.14
280
+ 2.7.2
@@ -1,2 +1,3 @@
1
1
  ---
2
2
  BUNDLE_RETRY: "1"
3
+ BUNDLE_PATH: "/home/runner/work/super_tools/super_tools/vendor/bundle"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails"
6
+ gem "rails", "8.0.5.1"
7
+ gem "sqlite3", ">= 1.7", "< 3"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails"
6
+ gem "rails", "8.1.3.1"
7
+ gem "sqlite3", ">= 1.7", "< 3"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails"
6
+ gem "rails", "8.0.5.1"
7
+ gem "sqlite3", ">= 1.7", "< 3"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "reform-rails", tag: "v0.2.6.f", git: "https://github.com/superlanding/reform-rails"
6
+ gem "rails", "8.1.3.1"
7
+ gem "sqlite3", ">= 1.7", "< 3"
8
+
9
+ gemspec path: "../"
@@ -1,3 +1,3 @@
1
1
  module SuperTools
2
- VERSION = "4.0.1"
2
+ VERSION = "4.0.3"
3
3
  end
data/super_tools.gemspec CHANGED
@@ -28,11 +28,12 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "minitest", "~> 5.0"
29
29
  spec.add_development_dependency "shoulda-context"
30
30
  spec.add_development_dependency "warning"
31
- spec.add_development_dependency "sqlite3", "1.4.4"
31
+ spec.add_development_dependency "sqlite3", ">= 1.4", "< 2"
32
32
  spec.add_development_dependency "appraisal"
33
33
 
34
- spec.add_dependency "rails", ">= 6.1", "< 8"
34
+ spec.add_dependency "rails", ">= 6.1", "< 8.2"
35
35
  spec.add_dependency "nokogiri", ">= 1.6"
36
+ spec.add_dependency "csv"
36
37
  spec.add_dependency "fast_excel"
37
38
  spec.add_dependency "roo"
38
39
  spec.add_dependency "roo-xls", "1.2.0"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - eddie
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-01-08 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: bundler
@@ -90,16 +89,22 @@ dependencies:
90
89
  name: sqlite3
91
90
  requirement: !ruby/object:Gem::Requirement
92
91
  requirements:
93
- - - '='
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '1.4'
95
+ - - "<"
94
96
  - !ruby/object:Gem::Version
95
- version: 1.4.4
97
+ version: '2'
96
98
  type: :development
97
99
  prerelease: false
98
100
  version_requirements: !ruby/object:Gem::Requirement
99
101
  requirements:
100
- - - '='
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '1.4'
105
+ - - "<"
101
106
  - !ruby/object:Gem::Version
102
- version: 1.4.4
107
+ version: '2'
103
108
  - !ruby/object:Gem::Dependency
104
109
  name: appraisal
105
110
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +128,7 @@ dependencies:
123
128
  version: '6.1'
124
129
  - - "<"
125
130
  - !ruby/object:Gem::Version
126
- version: '8'
131
+ version: '8.2'
127
132
  type: :runtime
128
133
  prerelease: false
129
134
  version_requirements: !ruby/object:Gem::Requirement
@@ -133,7 +138,7 @@ dependencies:
133
138
  version: '6.1'
134
139
  - - "<"
135
140
  - !ruby/object:Gem::Version
136
- version: '8'
141
+ version: '8.2'
137
142
  - !ruby/object:Gem::Dependency
138
143
  name: nokogiri
139
144
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +153,20 @@ dependencies:
148
153
  - - ">="
149
154
  - !ruby/object:Gem::Version
150
155
  version: '1.6'
156
+ - !ruby/object:Gem::Dependency
157
+ name: csv
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
151
170
  - !ruby/object:Gem::Dependency
152
171
  name: fast_excel
153
172
  requirement: !ruby/object:Gem::Requirement
@@ -323,6 +342,7 @@ executables: []
323
342
  extensions: []
324
343
  extra_rdoc_files: []
325
344
  files:
345
+ - ".github/workflows/publish.yml"
326
346
  - ".github/workflows/test.yml"
327
347
  - ".gitignore"
328
348
  - ".ruby-version"
@@ -345,6 +365,10 @@ files:
345
365
  - gemfiles/ruby_3.0_rails_7.gemfile
346
366
  - gemfiles/ruby_3.1_rails_6.gemfile
347
367
  - gemfiles/ruby_3.1_rails_7.gemfile
368
+ - gemfiles/ruby_3.3_rails_8.0.gemfile
369
+ - gemfiles/ruby_3.3_rails_8.1.gemfile
370
+ - gemfiles/ruby_3.4_rails_8.0.gemfile
371
+ - gemfiles/ruby_3.4_rails_8.1.gemfile
348
372
  - lib/super_form/basic.rb
349
373
  - lib/super_form/concerns/atomic_save.rb
350
374
  - lib/super_form/reform.rb
@@ -390,7 +414,6 @@ homepage: https://github.com/superlanding/super_tools
390
414
  licenses:
391
415
  - MIT
392
416
  metadata: {}
393
- post_install_message:
394
417
  rdoc_options: []
395
418
  require_paths:
396
419
  - lib
@@ -405,8 +428,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
405
428
  - !ruby/object:Gem::Version
406
429
  version: '0'
407
430
  requirements: []
408
- rubygems_version: 3.1.6
409
- signing_key:
431
+ rubygems_version: 3.6.9
410
432
  specification_version: 4
411
433
  summary: Rails 開發環境常用工具 Forms/Process/Spreadsheet
412
434
  test_files: []