blouson 4.0.0 → 5.0.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: debaa94dc33912dc0432b49d4f73e3b3753ad5a335d14d7aff5be862790f5aec
4
- data.tar.gz: 64ee1c8a595e0101e87c5316554a3b937188fd2d82cb9c5eb66aacf53b394496
3
+ metadata.gz: 893f69fbcd20b47c42747057d94ef6dc8a28b85f7d01555c75c4153de9ba70c9
4
+ data.tar.gz: 28c135959444fad3f1534dedaf66ab15a3a77f68c826f62bb7c03b7b308602c5
5
5
  SHA512:
6
- metadata.gz: 46fed87bbd604f81ec7e5c599efc89681db1d0a25fe7be3d3249d1b1ae6e08cf5cf81fb26429be086caf1221b4e776f7433fea4cc37853704d5a624085a44829
7
- data.tar.gz: e87e60345dd41be9c51274f2ac718c77bc9a4b5e88300bad64daaa8fd70b5af6f5ddc21f7d910a9bbcad134834acbe672ed6bf2bca9e50d5cbda016d08fcd564
6
+ metadata.gz: aa8dfa921b4dccd56b4b2f6ee72462581818ebf5c71147529fffd45c3c8b463ecec63d8263dd511a8be01875ca7efd856322189c1d077dc6c587f401f4329acb
7
+ data.tar.gz: 599ca220db2713d02327de03e789ed83b83ca96625bf7ce469853451669cccf71db97ee3ed8d188f3074c2693d46ff28175869c6bc1c621409ee729386515a87
@@ -11,25 +11,20 @@ jobs:
11
11
  fail-fast: false
12
12
  matrix:
13
13
  ruby:
14
- - '3.0'
15
14
  - '3.1'
16
15
  - '3.2'
17
16
  - '3.3'
18
17
  - '3.4'
19
18
  gemfile:
20
- - rails_7.0
21
19
  - rails_7.1
22
20
  - rails_7.2
23
21
  - rails_8.0
22
+ - rails_8.1
24
23
  exclude:
25
- - ruby: '3.0'
26
- gemfile: rails_7.2
27
- - ruby: '3.0'
28
- gemfile: rails_8.0
29
24
  - ruby: '3.1'
30
25
  gemfile: rails_8.0
31
- - ruby: '3.4'
32
- gemfile: rails_7.0
26
+ - ruby: '3.1'
27
+ gemfile: rails_8.1
33
28
  name: Run test with Ruby ${{ matrix.ruby }} and Gemfile ${{ matrix.gemfile }}
34
29
  services:
35
30
  mysql:
data/.gitignore CHANGED
@@ -8,6 +8,7 @@
8
8
  /pkg/
9
9
  /spec/reports/
10
10
  /tmp/
11
+ /gemfiles/.bundle/config
11
12
 
12
13
  # rspec failure tracking
13
14
  .rspec_status
data/Appraisals CHANGED
@@ -1,8 +1,3 @@
1
- appraise 'rails-7.0' do
2
- gem 'rails', '~> 7.0.0'
3
- gem 'concurrent-ruby', '1.3.4'
4
- end
5
-
6
1
  appraise 'rails-7.1' do
7
2
  gem 'rails', '~> 7.1.0'
8
3
  end
@@ -15,4 +10,8 @@ appraise 'rails-8.0' do
15
10
  gem 'rails', '~> 8.0.0'
16
11
  end
17
12
 
13
+ appraise 'rails-8.1' do
14
+ gem 'rails', '~> 8.1.0'
15
+ end
16
+
18
17
  # vim: set ft=ruby:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 5.0.0 (2026-01-23)
2
+ - [Breaking change] Drop support for Ruby 3.0
3
+ - [Breaking change] Drop support for Rails 7.0
4
+ - Support Rails 8.1
5
+ - Fix version matching errors; Blouson::SensitiveQueryFilter::AbstractAdapterFilter was not loaded with Rails 8.0
6
+
1
7
  # 4.0.0 (2025-02-04)
2
8
  - [Breaking change] Drop support for arproxy v0. Please update >= v1
3
9
  - [Breaking change] Drop support for Ruby 2.7
data/blouson.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency 'rails', '>= 7.0.0'
24
+ spec.add_dependency 'rails', '>= 7.1.0'
25
25
 
26
26
  spec.add_development_dependency 'arproxy', '>= 1.0.0'
27
27
  spec.add_development_dependency 'mysql2'
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 7.0.0"
6
- gem "concurrent-ruby", "1.3.4"
5
+ gem "rails", "~> 8.1.0"
7
6
 
8
7
  gemspec path: "../"
@@ -19,9 +19,15 @@ module Blouson
19
19
  ActiveRecord::StatementInvalid.class_eval do
20
20
  prepend Blouson::SensitiveQueryFilter::StatementInvalidErrorFilter
21
21
  end
22
- if Rails::VERSION::MAJOR >= 7 && Rails::VERSION::MINOR >= 1 && defined?(Mysql2::Error)
22
+ if ActiveRecord.gem_version >= Gem::Version.new('7.1') && defined?(Mysql2::Error)
23
23
  ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
24
- prepend Blouson::SensitiveQueryFilter::AbstractAdapterFilter
24
+ if ActiveRecord.gem_version >= Gem::Version.new('8.1')
25
+ prepend Blouson::SensitiveQueryFilter::AbstractAdapterFilter81
26
+ elsif ActiveRecord.gem_version >= Gem::Version.new('8.0')
27
+ prepend Blouson::SensitiveQueryFilter::AbstractAdapterFilter80
28
+ else
29
+ prepend Blouson::SensitiveQueryFilter::AbstractAdapterFilter71
30
+ end
25
31
  end
26
32
  end
27
33
  end
@@ -26,17 +26,7 @@ module Blouson
26
26
  end
27
27
  end
28
28
 
29
- if connection_pool
30
- # Rails >= 7.1
31
- #
32
- # - https://github.com/rails/rails/pull/48295
33
- super(message, sql: sql, binds: binds, connection_pool: connection_pool)
34
- else
35
- # Rails >= 6.0
36
- #
37
- # - https://github.com/rails/rails/pull/34468
38
- super(message, sql: sql, binds: binds)
39
- end
29
+ super(message, sql:, binds:, connection_pool:)
40
30
  end
41
31
 
42
32
  def set_query(sql, binds)
@@ -62,13 +52,25 @@ module Blouson
62
52
  end
63
53
  end
64
54
 
65
- module AbstractAdapterFilter
55
+ module AbstractAdapterFilter71
56
+ # https://github.com/rails/rails/blob/v7.1.0/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb#L1133
66
57
  def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil, async: false, &block)
67
- if Rails::VERSION::MAJOR >= 8
68
- super(sql, name, binds, type_casted_binds, async: false, &block)
69
- else
70
- super(sql, name, binds, type_casted_binds, statement_name, async: false, &block)
58
+ super(sql, name, binds, type_casted_binds, statement_name, async:, &block)
59
+ rescue ActiveRecord::RecordNotUnique, Mysql2::Error => ex
60
+ if ex.cause.is_a?(Mysql2::Error)
61
+ ex.cause.extend(Mysql2Filter)
62
+ elsif $!.is_a?(Mysql2::Error)
63
+ $!.extend(Mysql2Filter)
71
64
  end
65
+ raise ex
66
+ end
67
+ private :log
68
+ end
69
+
70
+ module AbstractAdapterFilter80
71
+ # https://github.com/rails/rails/blob/v8.0.0/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb#L1128
72
+ def log(sql, name = "SQL", binds = [], type_casted_binds = [], async: false, &block)
73
+ super(sql, name, binds, type_casted_binds, async:, &block)
72
74
  rescue ActiveRecord::RecordNotUnique, Mysql2::Error => ex
73
75
  if ex.cause.is_a?(Mysql2::Error)
74
76
  ex.cause.extend(Mysql2Filter)
@@ -77,7 +79,21 @@ module Blouson
77
79
  end
78
80
  raise ex
79
81
  end
82
+ private :log
83
+ end
80
84
 
85
+ module AbstractAdapterFilter81
86
+ # https://github.com/rails/rails/blob/v8.1.0/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb#L1200
87
+ def log(sql, name = "SQL", binds = [], type_casted_binds = [], async: false, allow_retry: false, &block)
88
+ super(sql, name, binds, type_casted_binds, async:, allow_retry:, &block)
89
+ rescue ActiveRecord::RecordNotUnique, Mysql2::Error => ex
90
+ if ex.cause.is_a?(Mysql2::Error)
91
+ ex.cause.extend(Mysql2Filter)
92
+ elsif $!.is_a?(Mysql2::Error)
93
+ $!.extend(Mysql2Filter)
94
+ end
95
+ raise ex
96
+ end
81
97
  private :log
82
98
  end
83
99
  end
@@ -1,13 +1,7 @@
1
1
  module Blouson
2
2
  class SentryParameterFilter
3
3
  def initialize(filters, header_filters = [])
4
- # ActionDispatch::Http::ParameterFilter is deprecated and will be removed from Rails 6.1.
5
- parameter_filter_klass = if defined?(ActiveSupport::ParameterFilter)
6
- ActiveSupport::ParameterFilter
7
- else
8
- ActionDispatch::Http::ParameterFilter
9
- end
10
- @parameter_filter = parameter_filter_klass.new(filters)
4
+ @parameter_filter = ActiveSupport::ParameterFilter.new(filters)
11
5
  @header_filters = header_filters.map(&:downcase)
12
6
  end
13
7
 
@@ -1,3 +1,3 @@
1
1
  module Blouson
2
- VERSION = "4.0.0"
2
+ VERSION = "5.0.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blouson
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cookpad Inc.
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-02-04 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 7.0.0
18
+ version: 7.1.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 7.0.0
25
+ version: 7.1.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: arproxy
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -168,10 +168,10 @@ files:
168
168
  - bin/console
169
169
  - bin/setup
170
170
  - blouson.gemspec
171
- - gemfiles/rails_7.0.gemfile
172
171
  - gemfiles/rails_7.1.gemfile
173
172
  - gemfiles/rails_7.2.gemfile
174
173
  - gemfiles/rails_8.0.gemfile
174
+ - gemfiles/rails_8.1.gemfile
175
175
  - lib/blouson.rb
176
176
  - lib/blouson/engine.rb
177
177
  - lib/blouson/raven_parameter_filter_processor.rb
@@ -200,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  requirements: []
203
- rubygems_version: 3.6.2
203
+ rubygems_version: 4.0.3
204
204
  specification_version: 4
205
205
  summary: Filter tools to mask sensitive data in various logs
206
206
  test_files: []