blouson 3.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: 840e5b805a31017d60d1652c29a478e2b356b7b37a573bb74f345e9dcde7c2ac
4
- data.tar.gz: c7dd1bfac7e80734459faa5429d17eef64d73c04a034f18bfdb5126530b155da
3
+ metadata.gz: 893f69fbcd20b47c42747057d94ef6dc8a28b85f7d01555c75c4153de9ba70c9
4
+ data.tar.gz: 28c135959444fad3f1534dedaf66ab15a3a77f68c826f62bb7c03b7b308602c5
5
5
  SHA512:
6
- metadata.gz: a42792b547527c0a2406a9d2bc206ef8860df465e879685f56202170559e2ebfc39da76837d7abf53a08e13bdbaa74a3def88bdd3f57e6daaab78f4d3d23a3ab
7
- data.tar.gz: 231df2e6c0798617606195afaf2812c09e6de32ee9109e93ee0aca9e4e35c7e14be08b8a288238104ce525f22621a9897fb4f7c1d084aba804ab2cc0daf8def7
6
+ metadata.gz: aa8dfa921b4dccd56b4b2f6ee72462581818ebf5c71147529fffd45c3c8b463ecec63d8263dd511a8be01875ca7efd856322189c1d077dc6c587f401f4329acb
7
+ data.tar.gz: 599ca220db2713d02327de03e789ed83b83ca96625bf7ce469853451669cccf71db97ee3ed8d188f3074c2693d46ff28175869c6bc1c621409ee729386515a87
@@ -11,16 +11,20 @@ jobs:
11
11
  fail-fast: false
12
12
  matrix:
13
13
  ruby:
14
- - '2.7'
15
- - '3.0'
16
14
  - '3.1'
17
15
  - '3.2'
18
16
  - '3.3'
17
+ - '3.4'
19
18
  gemfile:
20
- - rails_6.0
21
- - rails_6.1
22
- - rails_7.0
23
19
  - rails_7.1
20
+ - rails_7.2
21
+ - rails_8.0
22
+ - rails_8.1
23
+ exclude:
24
+ - ruby: '3.1'
25
+ gemfile: rails_8.0
26
+ - ruby: '3.1'
27
+ gemfile: rails_8.1
24
28
  name: Run test with Ruby ${{ matrix.ruby }} and Gemfile ${{ matrix.gemfile }}
25
29
  services:
26
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,17 +1,17 @@
1
- appraise 'rails-6.0' do
2
- gem 'rails', '~> 6.0.0'
1
+ appraise 'rails-7.1' do
2
+ gem 'rails', '~> 7.1.0'
3
3
  end
4
4
 
5
- appraise 'rails-6.1' do
6
- gem 'rails', '~> 6.1.0'
5
+ appraise 'rails-7.2' do
6
+ gem 'rails', '~> 7.2.0'
7
7
  end
8
8
 
9
- appraise 'rails-7.0' do
10
- gem 'rails', '~> 7.0.0'
9
+ appraise 'rails-8.0' do
10
+ gem 'rails', '~> 8.0.0'
11
11
  end
12
12
 
13
- appraise 'rails-7.1' do
14
- gem 'rails', '~> 7.1.0'
13
+ appraise 'rails-8.1' do
14
+ gem 'rails', '~> 8.1.0'
15
15
  end
16
16
 
17
17
  # vim: set ft=ruby:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
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
+
7
+ # 4.0.0 (2025-02-04)
8
+ - [Breaking change] Drop support for arproxy v0. Please update >= v1
9
+ - [Breaking change] Drop support for Ruby 2.7
10
+ - [Breaking change] Drop support for Rails 6.0 & 6.1
11
+ - Support Ruby 3.4
12
+ - Support Rails 7.2 & 8.0
13
+
1
14
  # 3.0.0 (2024-09-18)
2
15
  - [Breaking change] Drop support for Ruby 2.6
3
16
  - [Breaking change] Drop support for Rails 5.0, 5.1, and 5.2
data/blouson.gemspec CHANGED
@@ -21,9 +21,9 @@ 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', '>= 6.0.0'
24
+ spec.add_dependency 'rails', '>= 7.1.0'
25
25
 
26
- spec.add_development_dependency 'arproxy'
26
+ spec.add_development_dependency 'arproxy', '>= 1.0.0'
27
27
  spec.add_development_dependency 'mysql2'
28
28
  spec.add_development_dependency 'pry'
29
29
  spec.add_development_dependency 'sentry-raven'
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 6.0.0"
5
+ gem "rails", "~> 7.2.0"
6
6
 
7
7
  gemspec path: "../"
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 6.1.0"
5
+ gem "rails", "~> 8.0.0"
6
6
 
7
7
  gemspec path: "../"
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 7.0.0"
5
+ gem "rails", "~> 8.1.0"
6
6
 
7
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,9 +52,10 @@ 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
- super(sql, name, binds, type_casted_binds, statement_name, async: false, &block)
58
+ super(sql, name, binds, type_casted_binds, statement_name, async:, &block)
68
59
  rescue ActiveRecord::RecordNotUnique, Mysql2::Error => ex
69
60
  if ex.cause.is_a?(Mysql2::Error)
70
61
  ex.cause.extend(Mysql2Filter)
@@ -73,7 +64,36 @@ module Blouson
73
64
  end
74
65
  raise ex
75
66
  end
67
+ private :log
68
+ end
76
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)
74
+ rescue ActiveRecord::RecordNotUnique, Mysql2::Error => ex
75
+ if ex.cause.is_a?(Mysql2::Error)
76
+ ex.cause.extend(Mysql2Filter)
77
+ elsif $!.is_a?(Mysql2::Error)
78
+ $!.extend(Mysql2Filter)
79
+ end
80
+ raise ex
81
+ end
82
+ private :log
83
+ end
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
77
97
  private :log
78
98
  end
79
99
  end
@@ -1,13 +1,13 @@
1
1
  module Blouson
2
- class SensitiveTableQueryLogSilencer < Arproxy::Base
3
- def execute(sql, name=nil, **kwargs)
2
+ class SensitiveTableQueryLogSilencer < Arproxy::Proxy
3
+ def execute(sql, context)
4
4
  if !Rails.logger.debug? || !(Blouson::SENSITIVE_TABLE_REGEXP === sql)
5
- return super(sql, name, **kwargs)
5
+ return super(sql, context)
6
6
  end
7
7
 
8
8
  ActiveRecord::Base.logger.silence(Logger::INFO) do
9
9
  Rails.logger.info " [Blouson::SensitiveTableQueryLogSilencer] SQL Log is skipped for sensitive table"
10
- super(sql, name, **kwargs)
10
+ super(sql, context)
11
11
  end
12
12
  end
13
13
  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 = "3.0.0"
2
+ VERSION = "5.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blouson
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cookpad Inc.
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-09-18 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: rails
@@ -16,28 +15,28 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 6.0.0
18
+ version: 7.1.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: 6.0.0
25
+ version: 7.1.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: arproxy
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0'
32
+ version: 1.0.0
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '0'
39
+ version: 1.0.0
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: mysql2
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -169,10 +168,10 @@ files:
169
168
  - bin/console
170
169
  - bin/setup
171
170
  - blouson.gemspec
172
- - gemfiles/rails_6.0.gemfile
173
- - gemfiles/rails_6.1.gemfile
174
- - gemfiles/rails_7.0.gemfile
175
171
  - gemfiles/rails_7.1.gemfile
172
+ - gemfiles/rails_7.2.gemfile
173
+ - gemfiles/rails_8.0.gemfile
174
+ - gemfiles/rails_8.1.gemfile
176
175
  - lib/blouson.rb
177
176
  - lib/blouson/engine.rb
178
177
  - lib/blouson/raven_parameter_filter_processor.rb
@@ -187,7 +186,6 @@ homepage: https://github.com/cookpad/blouson
187
186
  licenses:
188
187
  - MIT
189
188
  metadata: {}
190
- post_install_message:
191
189
  rdoc_options: []
192
190
  require_paths:
193
191
  - lib
@@ -202,8 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
200
  - !ruby/object:Gem::Version
203
201
  version: '0'
204
202
  requirements: []
205
- rubygems_version: 3.5.11
206
- signing_key:
203
+ rubygems_version: 4.0.3
207
204
  specification_version: 4
208
205
  summary: Filter tools to mask sensitive data in various logs
209
206
  test_files: []