invoca-utils 0.5.1 → 0.6.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: c8684fc70ce068552001b1cd99cf11a8f60882e23d46b9a56f94276e5c5b6403
4
- data.tar.gz: c429285201930b90be6ea32d043f9625fcd22b493b6c4871ea912d55800958d2
3
+ metadata.gz: 443126af15b2537b1e27e80293dc05c81304f30ddd26a1af189dc132a46d033e
4
+ data.tar.gz: a0846a8f5c9d0b80b5204b08bdead40bb2730f2aa0addb926306cd9da51e50cf
5
5
  SHA512:
6
- metadata.gz: a8c825cfa1b59d065cd8ea81a56cbe1e1d5c1acd277b2d9d05b452392b027de3a07acd6537aef12732fe70b7994b3aa2a0b74c03355c053b3c4d0db6552ccf43
7
- data.tar.gz: e641a1ef06cd907e48d5b6addec2bcb8ae27b125528ec645bd2366153938245c0a3de6635241aebe416a86a196509337c6ad9a88ee3685d97d84ceb60e11f3e1
6
+ metadata.gz: a178753bf9f95c9ba7b5ce2620b987dfd36aa618d7f0ec7660245d242d056a9512b3e7b51b19e45fb790c4159ecfafc910e7b00e6dbe792f005611557d39e555
7
+ data.tar.gz: 84e20b7543da792234fe69b90046023d05e3fb24ca109717997b644a6075a05aada044b4f321347d6aa08ec0cd20b911bbb5e3eac5aabb2df90022f8fac95007
@@ -0,0 +1 @@
1
+ * @Invoca/octothorpe
@@ -1,40 +1,8 @@
1
- ---
2
1
  name: Pipeline
3
-
4
- on: [push]
5
-
2
+ on:
3
+ push:
4
+ schedule:
5
+ - cron: '0 1 * * 1' # Every Monday at 1AM UTC
6
6
  jobs:
7
7
  tests:
8
- runs-on: ubuntu-22.04
9
-
10
- strategy:
11
- fail-fast: false
12
- matrix:
13
- ruby: [2.5, 2.6, 2.7, '3.0', 3.1, 3.2]
14
- gemfile:
15
- - Gemfile
16
- - gemfiles/activesupport_5.gemfile
17
- - gemfiles/activesupport_6.gemfile
18
- - gemfiles/activesupport_7.gemfile
19
- exclude:
20
- - ruby: 2.5
21
- gemfile: gemfiles/activesupport_7.gemfile
22
- - ruby: 2.6
23
- gemfile: gemfiles/activesupport_7.gemfile
24
-
25
- env:
26
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
27
-
28
- name: Unit Tests (${{ matrix.ruby }} - ${{ matrix.gemfile }})
29
-
30
- steps:
31
- - name: Check out
32
- uses: actions/checkout@v2
33
- - name: Set up Ruby ${{ matrix.ruby }}
34
- uses: ruby/setup-ruby@v1
35
- with:
36
- ruby-version: ${{ matrix.ruby }}
37
- bundler: 2.2.29
38
- bundler-cache: true
39
- - name: Run Tests
40
- run: bundle exec rspec
8
+ uses: Invoca/ruby-test-matrix-workflow/.github/workflows/ruby-test-matrix.yml@main
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.5
1
+ 3.1.6
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.7.5
1
+ ruby 3.1.6
data/Appraisals CHANGED
@@ -1,13 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'activesupport-5' do
4
- gem 'activesupport', '~> 5.2'
5
- end
3
+ require 'appraisal/matrix'
6
4
 
7
- appraise 'activesupport-6' do
8
- gem 'activesupport', '~> 6.0'
9
- end
10
-
11
- appraise 'activesupport-7' do
12
- gem 'activesupport', '~> 7.0'
13
- end
5
+ appraisal_matrix(activesupport: "7.0")
data/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
5
  **Note:** This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.6.1] - 2025-03-27
8
+ ### Fixed
9
+ - Fixed a global namespace collision with diff-lcs over the `Diff` constant
10
+
11
+ ### Added
12
+ - Loading `invoca/utils/diff` now gives access to both `invoca-utils` and `diff-lcs` diff helpers
13
+
14
+ ## [0.6.0] - 2024-07-10
15
+ ### Added
16
+ - Require Ruby > 3.1
17
+ - Allow ActiveSupport >= 6
18
+ ### Removed
19
+ - Support for Ruby < 3
20
+ - Support for ActiveSupport < 6
21
+
7
22
  ## [0.5.1] - 2023-02-17
8
23
  ### Added
9
24
  - Integrated Appraisal into github actions for testing across multiple versions of ActiveSupport
data/Gemfile CHANGED
@@ -7,9 +7,17 @@ gemspec
7
7
 
8
8
  # Specify your gem's development and test dependencies below
9
9
  gem "appraisal", "~> 2.4"
10
+ gem "appraisal-matrix"
10
11
  gem "rake", "~> 13.0"
11
12
  gem "rspec", "~> 3.0"
12
13
  gem "rspec_junit_formatter", "~> 0.4"
13
14
  # minitest, which is a transitive dependency of activesupport,
14
15
  # version should support ruby 2.5 which is the minimum github pipeline targets
15
16
  gem "minitest", "~> 5.10.0"
17
+
18
+
19
+ gem "concurrent-ruby", "~> 1.3", "< 1.3.5"
20
+
21
+ gem "base64", ">= 0.2.0"
22
+ gem "bigdecimal", ">= 3.1"
23
+ gem "mutex_m", ">= 0.2.0"
data/Gemfile.lock CHANGED
@@ -1,46 +1,58 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- invoca-utils (0.5.1)
5
- activesupport (>= 5.0)
4
+ invoca-utils (0.6.1)
5
+ activesupport (>= 6.0)
6
+ diff-lcs (>= 1.6.1)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- activesupport (5.2.8.1)
11
+ activesupport (7.1.3.4)
12
+ base64
13
+ bigdecimal
11
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (>= 0.7, < 2)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
15
- appraisal (2.4.1)
15
+ connection_pool (>= 2.2.5)
16
+ drb
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ mutex_m
20
+ tzinfo (~> 2.0)
21
+ appraisal (2.5.0)
16
22
  bundler
17
23
  rake
18
24
  thor (>= 0.14.0)
19
- concurrent-ruby (1.2.0)
20
- diff-lcs (1.5.0)
21
- i18n (1.12.0)
25
+ appraisal-matrix (0.1.0)
26
+ appraisal (~> 2.2)
27
+ base64 (0.2.0)
28
+ bigdecimal (3.1.8)
29
+ concurrent-ruby (1.3.3)
30
+ connection_pool (2.4.1)
31
+ diff-lcs (1.6.1)
32
+ drb (2.2.1)
33
+ i18n (1.14.5)
22
34
  concurrent-ruby (~> 1.0)
23
35
  minitest (5.10.3)
24
- rake (13.0.6)
25
- rspec (3.12.0)
26
- rspec-core (~> 3.12.0)
27
- rspec-expectations (~> 3.12.0)
28
- rspec-mocks (~> 3.12.0)
29
- rspec-core (3.12.1)
30
- rspec-support (~> 3.12.0)
31
- rspec-expectations (3.12.2)
36
+ mutex_m (0.2.0)
37
+ rake (13.2.1)
38
+ rspec (3.13.0)
39
+ rspec-core (~> 3.13.0)
40
+ rspec-expectations (~> 3.13.0)
41
+ rspec-mocks (~> 3.13.0)
42
+ rspec-core (3.13.0)
43
+ rspec-support (~> 3.13.0)
44
+ rspec-expectations (3.13.3)
32
45
  diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.12.0)
34
- rspec-mocks (3.12.3)
46
+ rspec-support (~> 3.13.0)
47
+ rspec-mocks (3.13.1)
35
48
  diff-lcs (>= 1.2.0, < 2.0)
36
- rspec-support (~> 3.12.0)
37
- rspec-support (3.12.0)
49
+ rspec-support (~> 3.13.0)
50
+ rspec-support (3.13.1)
38
51
  rspec_junit_formatter (0.6.0)
39
52
  rspec-core (>= 2, < 4, != 2.12.0)
40
- thor (1.2.1)
41
- thread_safe (0.3.6)
42
- tzinfo (1.2.11)
43
- thread_safe (~> 0.1)
53
+ thor (1.3.1)
54
+ tzinfo (2.0.6)
55
+ concurrent-ruby (~> 1.0)
44
56
 
45
57
  PLATFORMS
46
58
  arm64-darwin-22
@@ -49,11 +61,16 @@ PLATFORMS
49
61
 
50
62
  DEPENDENCIES
51
63
  appraisal (~> 2.4)
64
+ appraisal-matrix
65
+ base64 (>= 0.2.0)
66
+ bigdecimal (>= 3.1)
67
+ concurrent-ruby (~> 1.3, < 1.3.5)
52
68
  invoca-utils!
53
69
  minitest (~> 5.10.0)
70
+ mutex_m (>= 0.2.0)
54
71
  rake (~> 13.0)
55
72
  rspec (~> 3.0)
56
73
  rspec_junit_formatter (~> 0.4)
57
74
 
58
75
  BUNDLED WITH
59
- 2.2.29
76
+ 2.6.3
data/catalog-info.yaml ADDED
@@ -0,0 +1,33 @@
1
+ # This file is partially auto-generated by the invoca-backstage-tools gem
2
+ # The following fields should not be edited manually as they are auto-generated
3
+ # based on the contents of the repo:
4
+ # - metadata.name
5
+ # - metadata.title
6
+ # - metadata.description
7
+ # - annotations.github.com/project-slug
8
+ # - invoca.com/version-repository-location
9
+ # - invoca.com/version-repository-name
10
+ # - spec.type
11
+ # - spec.owner
12
+ ---
13
+ apiVersion: backstage.io/v1alpha1
14
+ kind: Component
15
+ metadata:
16
+ name: invoca-utils-gem
17
+ title: Invoca::Utils
18
+ description: A public collection of helpers used in multiple projects
19
+ tags:
20
+ - ruby
21
+ - gem
22
+ - public
23
+ - rails-dependent
24
+ annotations:
25
+ buildkite.com/project-slug: Invoca/invoca-utils
26
+ github.com/project-slug: Invoca/invoca-utils
27
+ invoca.com/version-repository-location: rubygems
28
+ invoca.com/version-repository-name: invoca-utils
29
+ spec:
30
+ type: library
31
+ lifecycle: production
32
+ owner: octothorpe
33
+ dependsOn: []
@@ -3,10 +3,15 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
+ gem "appraisal-matrix"
6
7
  gem "rake", "~> 13.0"
7
8
  gem "rspec", "~> 3.0"
8
9
  gem "rspec_junit_formatter", "~> 0.4"
9
10
  gem "minitest", "~> 5.10.0"
10
- gem "activesupport", "~> 5.2"
11
+ gem "concurrent-ruby", "~> 1.3", "< 1.3.5"
12
+ gem "base64", ">= 0.2.0"
13
+ gem "bigdecimal", ">= 3.1"
14
+ gem "mutex_m", ">= 0.2.0"
15
+ gem "activesupport", "~> 7.0.0"
11
16
 
12
17
  gemspec path: "../"
@@ -3,10 +3,15 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
+ gem "appraisal-matrix"
6
7
  gem "rake", "~> 13.0"
7
8
  gem "rspec", "~> 3.0"
8
9
  gem "rspec_junit_formatter", "~> 0.4"
9
10
  gem "minitest", "~> 5.10.0"
10
- gem "activesupport", "~> 6.0"
11
+ gem "concurrent-ruby", "~> 1.3", "< 1.3.5"
12
+ gem "base64", ">= 0.2.0"
13
+ gem "bigdecimal", ">= 3.1"
14
+ gem "mutex_m", ">= 0.2.0"
15
+ gem "activesupport", "~> 7.1.0"
11
16
 
12
17
  gemspec path: "../"
@@ -3,10 +3,15 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
+ gem "appraisal-matrix"
6
7
  gem "rake", "~> 13.0"
7
8
  gem "rspec", "~> 3.0"
8
9
  gem "rspec_junit_formatter", "~> 0.4"
9
10
  gem "minitest", "~> 5.10.0"
10
- gem "activesupport", "~> 7.0"
11
+ gem "concurrent-ruby", "~> 1.3", "< 1.3.5"
12
+ gem "base64", ">= 0.2.0"
13
+ gem "bigdecimal", ">= 3.1"
14
+ gem "mutex_m", ">= 0.2.0"
15
+ gem "activesupport", "~> 7.2.0"
11
16
 
12
17
  gemspec path: "../"
@@ -0,0 +1,17 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.4"
6
+ gem "appraisal-matrix"
7
+ gem "rake", "~> 13.0"
8
+ gem "rspec", "~> 3.0"
9
+ gem "rspec_junit_formatter", "~> 0.4"
10
+ gem "minitest", "~> 5.10.0"
11
+ gem "concurrent-ruby", "~> 1.3", "< 1.3.5"
12
+ gem "base64", ">= 0.2.0"
13
+ gem "bigdecimal", ">= 3.1"
14
+ gem "mutex_m", ">= 0.2.0"
15
+ gem "activesupport", "~> 8.0.0"
16
+
17
+ gemspec path: "../"
data/invoca-utils.gemspec CHANGED
@@ -25,10 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ["lib"]
26
26
 
27
27
  # this should match the minimum github pipeline targets
28
- # which is currently set to 2.5
29
- spec.required_ruby_version = ">= 2.5.0"
28
+ # which is currently set to 3.1
29
+ spec.required_ruby_version = ">= 3.1"
30
30
 
31
- spec.add_dependency "activesupport", ">= 5.0"
31
+ spec.add_dependency "activesupport", ">= 6.0"
32
+ spec.add_dependency "diff-lcs", ">= 1.6.1"
32
33
 
33
34
  # Specify this gem's development and test dependencies in Gemfile
34
35
  end
@@ -2,10 +2,14 @@
2
2
 
3
3
  # adapted from http://users.cybercity.dk/~dsl8950/ruby/diff-0.3.tar.gz
4
4
 
5
+ require "diff/lcs"
6
+
5
7
  module Invoca
6
8
  module Utils
7
9
  class Diff
8
10
 
11
+ LCS = ::Diff::LCS
12
+
9
13
  VERSION = 0.3
10
14
 
11
15
  def self.lcs(a, b)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Invoca
4
4
  module Utils
5
- VERSION = "0.5.1"
5
+ VERSION = "0.6.1"
6
6
  end
7
7
  end
data/lib/invoca/utils.rb CHANGED
@@ -20,9 +20,7 @@ require "invoca/utils/exceptions"
20
20
  require "invoca/utils/guaranteed_utf8_string"
21
21
  require "invoca/utils/version"
22
22
 
23
- unless defined?(Diff)
24
- Diff = Invoca::Utils::Diff
25
- end
23
+ Diff = Invoca::Utils::Diff
26
24
 
27
25
  unless defined?(Diffable)
28
26
  Diffable = Invoca::Utils::Diffable
@@ -30,8 +30,13 @@ describe Invoca::Utils do
30
30
  load 'invoca/utils.rb'
31
31
  end
32
32
 
33
- it "not define Diff as Invoca::Utils::Diff" do
34
- expect(@class).to eq(::Diff)
33
+ it "define Diff as Invoca::Utils::Diff" do
34
+ expect(Invoca::Utils::Diff).to eq(::Diff)
35
+ end
36
+
37
+ it "still allows access to diff-lcs methods" do
38
+ expect(defined?(Diff::LCS)).to eq("constant")
39
+ expect(Diff::LCS).to respond_to(:diff)
35
40
  end
36
41
  end
37
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invoca-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca development
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2025-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.0'
26
+ version: '6.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: diff-lcs
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.1
27
41
  description: A public collection of helpers used in multiple projects
28
42
  email:
29
43
  - development@invoca.com
@@ -31,6 +45,7 @@ executables: []
31
45
  extensions: []
32
46
  extra_rdoc_files: []
33
47
  files:
48
+ - ".github/CODEOWNERS"
34
49
  - ".github/workflows/pipeline.yml"
35
50
  - ".gitignore"
36
51
  - ".rspec"
@@ -44,9 +59,11 @@ files:
44
59
  - LICENSE.txt
45
60
  - README.md
46
61
  - Rakefile
47
- - gemfiles/activesupport_5.gemfile
48
- - gemfiles/activesupport_6.gemfile
49
- - gemfiles/activesupport_7.gemfile
62
+ - catalog-info.yaml
63
+ - gemfiles/activesupport_7_0.gemfile
64
+ - gemfiles/activesupport_7_1.gemfile
65
+ - gemfiles/activesupport_7_2.gemfile
66
+ - gemfiles/activesupport_8_0.gemfile
50
67
  - invoca-utils.gemspec
51
68
  - lib/invoca/utils.rb
52
69
  - lib/invoca/utils/array.rb
@@ -83,7 +100,7 @@ licenses:
83
100
  - MIT
84
101
  metadata:
85
102
  allowed_push_host: https://rubygems.org
86
- post_install_message:
103
+ post_install_message:
87
104
  rdoc_options: []
88
105
  require_paths:
89
106
  - lib
@@ -91,15 +108,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
108
  requirements:
92
109
  - - ">="
93
110
  - !ruby/object:Gem::Version
94
- version: 2.5.0
111
+ version: '3.1'
95
112
  required_rubygems_version: !ruby/object:Gem::Requirement
96
113
  requirements:
97
114
  - - ">="
98
115
  - !ruby/object:Gem::Version
99
116
  version: '0'
100
117
  requirements: []
101
- rubygems_version: 3.4.7
102
- signing_key:
118
+ rubygems_version: 3.3.27
119
+ signing_key:
103
120
  specification_version: 4
104
121
  summary: A public collection of helpers used in multiple projects
105
122
  test_files: