excavate 0.3.0 → 0.3.1

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: d9ea70e2de46706b2324d98253d9012d175a706fc010478a0ccb1b6af00fc02e
4
- data.tar.gz: 51c3c8e44013e17201114f4315b4314d9f44dc645c41d3f8627f81353b0269b1
3
+ metadata.gz: b66a3e8ff5083bd78711cff8289e18f958578d84fea44be53dcd4f5349508755
4
+ data.tar.gz: 1c65ff305ed20893b27470063280f60698d9920db597d42af8e75127c947784a
5
5
  SHA512:
6
- metadata.gz: 4f1c1c62794e14c5272cb8c9881dd50a8be3992c446086c0a5f58cecf51100458f962ddaeec1d2d329a0d3e03cff328bb287a9183ab5315534ba203fb1758544
7
- data.tar.gz: 79a3aac7b28480c4a1675b68877e21e192d311099f348aaebc84ae157d966e6bb56c2dffe53c25aeea331a08286aa7b34e8e92fd015cb8588514da8340092d85
6
+ metadata.gz: feac4007753c19cb52d9f32432f96ab2a2cf6553556cb950ad15f210a0e8f3d0209622b81702e17d4a9fef3e975b42f7f97178d7d55dfc914731245093a159f0
7
+ data.tar.gz: 93bed15a89d5f620e45232f9de42afde7efaabc7e79734617c8443f2324858a6a97e6b9e40995ee18ad5bce4d36ea1ac584b238d257accf567e88472ea0fd991
@@ -2,32 +2,73 @@ name: metanorma
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ branches: [ main ]
6
6
  pull_request:
7
7
 
8
+ concurrency:
9
+ group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
10
+ cancel-in-progress: true
11
+
8
12
  jobs:
13
+ prepare:
14
+ runs-on: ubuntu-latest
15
+ outputs:
16
+ head_tag: ${{ steps.check.outputs.head_tag }}
17
+ foreign_pr: ${{ steps.check.outputs.foreign_pr }}
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v2.3.4
21
+
22
+ - name: Retrieve tags
23
+ run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true
24
+ - name: Set output variables
25
+ id: check
26
+ run: |
27
+ fpr="no"
28
+ tag=""
29
+ if [[ "${{ github.ref }}" == refs/heads/* ]]; then
30
+ tag="$(git tag --points-at HEAD)"
31
+ elif [[ "${{ github.ref }}" == refs/pull/* ]] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.event.pull_request.base.repo.full_name }}" ]; then
32
+ fpr="yes"
33
+ fi
34
+ echo "::set-output name=foreign_pr::${fpr}"
35
+ echo "::set-output name=head_tag::${tag}"
36
+
9
37
  test:
10
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
38
+ name: Test with Metanorma on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
39
+ needs: prepare
11
40
  runs-on: ${{ matrix.os }}
12
- continue-on-error: ${{ matrix.experimental }}
41
+ continue-on-error: false
13
42
  strategy:
14
43
  fail-fast: false
15
44
  matrix:
16
- ruby: [ '2.5', '2.6', '2.7', '3.0' ]
45
+ ruby: [ '2.7', '3.0', '3.1' ]
17
46
  os: [ ubuntu-latest, windows-latest, macos-latest ]
18
- experimental: [ true ]
19
47
  steps:
20
- - uses: actions/checkout@master
48
+ - uses: actions/checkout@v3
21
49
  with:
22
50
  repository: metanorma/metanorma
23
51
 
24
- - uses: actions/checkout@master
52
+ - uses: metanorma/metanorma-build-scripts/inkscape-setup-action@main
53
+
54
+ - uses: actions/checkout@v3
25
55
  with:
26
56
  path: "excavate"
27
57
 
28
58
  - run: 'echo ''gem "excavate", path: "./excavate"'' > Gemfile.devel'
29
59
 
30
- - uses: ruby/setup-ruby@v1
60
+ - if: matrix.ruby == '3.0'
61
+ uses: ruby/setup-ruby@v1
62
+ with:
63
+ ruby-version: ${{ matrix.ruby }}
64
+ bundler-cache: false
65
+ rubygems: latest
66
+
67
+ - if: matrix.ruby == '3.0'
68
+ run: bundle
69
+
70
+ - if: matrix.ruby != '3.0'
71
+ uses: ruby/setup-ruby@v1
31
72
  with:
32
73
  ruby-version: ${{ matrix.ruby }}
33
74
  bundler-cache: true
@@ -0,0 +1,69 @@
1
+ name: test-and-release
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ tags: [ 'v*' ]
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ prepare:
15
+ runs-on: ubuntu-latest
16
+ outputs:
17
+ head_tag: ${{ steps.check.outputs.head_tag }}
18
+ foreign_pr: ${{ steps.check.outputs.foreign_pr }}
19
+ steps:
20
+ - name: Checkout
21
+ uses: actions/checkout@v2.3.4
22
+
23
+ - name: Retrieve tags
24
+ run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true
25
+ - name: Set output variables
26
+ id: check
27
+ run: |
28
+ fpr="no"
29
+ tag=""
30
+ if [[ "${{ github.ref }}" == refs/heads/* ]]; then
31
+ tag="$(git tag --points-at HEAD)"
32
+ elif [[ "${{ github.ref }}" == refs/pull/* ]] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.event.pull_request.base.repo.full_name }}" ]; then
33
+ fpr="yes"
34
+ fi
35
+ echo "::set-output name=foreign_pr::${fpr}"
36
+ echo "::set-output name=head_tag::${tag}"
37
+
38
+ test:
39
+ name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
40
+ needs: prepare
41
+ runs-on: ${{ matrix.os }}
42
+ continue-on-error: false
43
+ strategy:
44
+ fail-fast: false
45
+ matrix:
46
+ ruby: [ '2.6', '2.7', '3.0', '3.1' ]
47
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
48
+
49
+ steps:
50
+ - uses: actions/checkout@v3
51
+
52
+ - uses: ruby/setup-ruby@v1
53
+ with:
54
+ ruby-version: ${{ matrix.ruby }}
55
+ bundler-cache: true
56
+
57
+ - run: bundle exec rspec
58
+
59
+ release:
60
+ name: Release gem
61
+ needs: test
62
+ runs-on: ubuntu-latest
63
+ if: contains(github.ref, 'refs/tags/v')
64
+ steps:
65
+ - uses: actions/checkout@v3
66
+
67
+ - uses: cadwallion/publish-rubygems-action@master
68
+ env:
69
+ RUBYGEMS_API_KEY: ${{secrets.FONTIST_CI_RUBYGEMS_API_KEY}}
data/Gemfile CHANGED
@@ -7,6 +7,6 @@ gemspec
7
7
  gem "gem-release"
8
8
  gem "rake", "~> 13.0"
9
9
  gem "rspec", "~> 3.2"
10
- gem "rubocop", "0.75.0"
10
+ gem "rubocop"
11
11
  gem "rubocop-performance"
12
12
  gem "rubocop-rails"
data/excavate.gemspec CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  require_relative "lib/excavate/version"
4
3
 
5
4
  Gem::Specification.new do |spec|
@@ -31,6 +30,6 @@ Gem::Specification.new do |spec|
31
30
  spec.add_runtime_dependency "libmspack", "~> 0.1"
32
31
  spec.add_runtime_dependency "ruby-ole", "~> 1.0"
33
32
  spec.add_runtime_dependency "rubyzip", "~> 2.3"
34
- spec.add_runtime_dependency "seven_zip_ruby", "~> 1.0"
33
+ spec.add_runtime_dependency "seven-zip", "~> 1.4"
35
34
  spec.add_runtime_dependency "thor", "~> 1.0"
36
35
  end
@@ -155,11 +155,7 @@ module Excavate
155
155
  end
156
156
 
157
157
  def extract_recursively(archive, target)
158
- if File.directory?(archive)
159
- duplicate_dir(archive, target)
160
- else
161
- extract_once(archive, target)
162
- end
158
+ extract_to_directory(archive, target)
163
159
 
164
160
  all_files_in(target).each do |file|
165
161
  next unless archive?(file)
@@ -168,6 +164,16 @@ module Excavate
168
164
  end
169
165
  end
170
166
 
167
+ def extract_to_directory(archive, target)
168
+ if File.directory?(archive)
169
+ duplicate_dir(archive, target)
170
+ elsif !archive?(archive)
171
+ copy_file(archive, target)
172
+ else
173
+ extract_once(archive, target)
174
+ end
175
+ end
176
+
171
177
  def duplicate_dir(source, target)
172
178
  Dir.chdir(source) do
173
179
  (Dir.entries(".") - [".", ".."]).each do |entry|
@@ -176,6 +182,10 @@ module Excavate
176
182
  end
177
183
  end
178
184
 
185
+ def copy_file(archive, target)
186
+ FileUtils.cp(archive, target)
187
+ end
188
+
179
189
  def extract_once(archive, target)
180
190
  extension = normalized_extension(archive)
181
191
  extractor_class = TYPES[extension]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Excavate
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: excavate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-23 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arr-pm
@@ -81,19 +81,19 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: seven_zip_ruby
84
+ name: seven-zip
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.0'
89
+ version: '1.4'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.0'
96
+ version: '1.4'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: thor
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -117,8 +117,7 @@ extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - ".github/workflows/metanorma.yml"
120
- - ".github/workflows/release.yml"
121
- - ".github/workflows/rspec.yml"
120
+ - ".github/workflows/test-and-release.yml"
122
121
  - ".gitignore"
123
122
  - ".rspec"
124
123
  - ".rubocop.yml"
@@ -169,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
168
  - !ruby/object:Gem::Version
170
169
  version: '0'
171
170
  requirements: []
172
- rubygems_version: 3.0.3.1
171
+ rubygems_version: 3.3.7
173
172
  signing_key:
174
173
  specification_version: 4
175
174
  summary: Extract nested archives with a single command.
@@ -1,36 +0,0 @@
1
- name: release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
-
8
- jobs:
9
- release:
10
- runs-on: ubuntu-18.04
11
- steps:
12
- - uses: actions/checkout@v1
13
-
14
- - uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: '2.6'
17
-
18
- - run: bundle config set path 'vendor/bundle'
19
-
20
- - run: bundle install --jobs 4 --retry 3
21
-
22
- - run: bundle exec rspec
23
-
24
- - name: Publish to rubygems.org
25
- env:
26
- RUBYGEMS_API_KEY: ${{secrets.FONTIST_CI_RUBYGEMS_API_KEY}}
27
- run: |
28
- gem install gem-release
29
- touch ~/.gem/credentials
30
- cat > ~/.gem/credentials << EOF
31
- ---
32
- :rubygems_api_key: ${RUBYGEMS_API_KEY}
33
- EOF
34
- chmod 0600 ~/.gem/credentials
35
- git status
36
- gem release
@@ -1,47 +0,0 @@
1
- name: rspec
2
-
3
- on:
4
- push:
5
- branches: [ master, main ]
6
- pull_request:
7
-
8
- jobs:
9
- build:
10
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
11
- runs-on: ${{ matrix.os }}
12
- continue-on-error: ${{ matrix.experimental }}
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- ruby: [ '2.4', '2.5', '2.6', '2.7' ]
17
- os: [ ubuntu-latest, windows-latest, macos-latest ]
18
- experimental: [ false ]
19
- include:
20
- - ruby: '3.0'
21
- os: 'ubuntu-latest'
22
- experimental: true
23
- - ruby: '3.0'
24
- os: 'windows-latest'
25
- experimental: true
26
- - ruby: '3.0'
27
- os: 'macos-latest'
28
- experimental: true
29
-
30
- steps:
31
- - uses: actions/checkout@master
32
-
33
- - uses: ruby/setup-ruby@v1
34
- with:
35
- ruby-version: ${{ matrix.ruby }}
36
-
37
- - uses: actions/cache@v1
38
- with:
39
- path: vendor/bundle
40
- key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
41
- restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}
42
-
43
- - run: bundle config set path 'vendor/bundle'
44
-
45
- - run: bundle install --jobs 4 --retry 3
46
-
47
- - run: bundle exec rspec