sequel-activerecord_connection 1.2.1 → 1.2.5

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: 72a4a1bf22a4a83664c7925b1d0b78ee5d20777eb12ffec4df9bd4b0c60a9930
4
- data.tar.gz: 58c32e5d224d136cb797453bd8ac70f40d964160c4996377909349c8bb324af5
3
+ metadata.gz: 2f7764c3c949cc68b34a38607264efa44915adcecca59514e5ecfda075f9e9d7
4
+ data.tar.gz: 273b77e0d95f1506765bd4ee88d79ec69639224b7d220b6d368d62bdfc7b665b
5
5
  SHA512:
6
- metadata.gz: 7cc94ff1690360f805eec685404d9017b9df0f327c32110e54694dd1da148f1141990a468b69787896ea5e9a4b13d84c41783d4dcee0fd8b1f020defd9288961
7
- data.tar.gz: b67647d492d7d31478ca6db7ba4b107914d8ba692bd41bf4596cab5f06a16ee62b2f19ab199dfce9566234ac876b349c212199a23cbec2c15884108cf1e41f79
6
+ metadata.gz: d32c90dbfc833db0c8f62ee72ef7a2d997e9c3d0b5e9f7e0dc817431a9e96cbb1e87542de0c828742a8068cfa5227ae8cf287931c6bcb05b6da87fd87b00c924
7
+ data.tar.gz: 174b89d5a19094c68549fb1112df0de767eb9ed77b1acd7e17114ac3af3637f47f95c46c3e98dace8b28123a473669ff17b04197ee3819c4a92a78cfa6f3a024
data/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
- ## 1.2.1 (2020-01-10)
1
+ ## HEAD
2
+
3
+ * Loosen Active Record dependency to allow any 7.x version (@janko)
4
+
5
+ * Drop support for Ruby 2.3 (@janko)
6
+
7
+ * Allow using the `sql_log_normalizer` Sequel database extension (@janko)
8
+
9
+ ## 1.2.4 (2021-09-27)
10
+
11
+ * Allow using with Active Record 7.0 (@janko)
12
+
13
+ * Use `ActiveRecord.default_timezone` on Active Record 7.0 or greater (@janko)
14
+
15
+ ## 1.2.3 (2021-07-17)
16
+
17
+ * Bump `after_commit_everywhere` dependency to `~> 1.0` (@wivarn)
18
+
19
+ ## 1.2.2 (2021-01-11)
20
+
21
+ * Ensure Active Record queries inside a Sequel transaction are typemapped correctly in postgres adapter (@janko)
22
+
23
+ * Fix executing Active Record queries inside a Sequel transaction not working in mysql2 adapter (@janko)
24
+
25
+ ## 1.2.1 (2021-01-10)
2
26
 
3
27
  * Fix original mysql2 query options not being restored after nested `DB#synchronize` calls, e.g. when using Sequel transactions (@janko)
4
28
 
@@ -5,21 +5,26 @@ module Sequel
5
5
  module Mysql2
6
6
  def synchronize(*)
7
7
  super do |conn|
8
- if conn.instance_variable_defined?(:@sequel_default_query_options)
9
- return yield(conn)
10
- end
11
-
12
8
  # required for prepared statements
13
- conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
14
9
  Utils.add_prepared_statements_cache(conn)
15
10
 
16
- conn.query_options.merge!(as: :hash, symbolize_keys: true, cache_rows: false)
11
+ yield conn
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def _execute(conn, sql, opts)
18
+ if conn.instance_variable_defined?(:@sequel_default_query_options)
19
+ return super
20
+ end
17
21
 
18
- begin
19
- yield conn
20
- ensure
21
- conn.query_options.replace(conn.remove_instance_variable(:@sequel_default_query_options))
22
- end
22
+ conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
23
+ conn.query_options.merge!(as: :hash, symbolize_keys: true, cache_rows: false)
24
+ begin
25
+ super
26
+ ensure
27
+ conn.query_options.replace(conn.remove_instance_variable(:@sequel_default_query_options))
23
28
  end
24
29
  end
25
30
  end
@@ -10,9 +10,7 @@ module Sequel
10
10
 
11
11
  Utils.add_prepared_statements_cache(conn)
12
12
 
13
- Utils.set_value(conn, :type_map_for_results, PG::TypeMapAllStrings.new) do
14
- yield conn
15
- end
13
+ yield conn
16
14
  end
17
15
  end
18
16
 
@@ -84,7 +82,9 @@ module Sequel
84
82
  # Return the PG::Result containing the query results.
85
83
  def execute_query(sql, args)
86
84
  @db.log_connection_yield(sql, self, args) do
87
- args ? async_exec_params(sql, args) : async_exec(sql)
85
+ Utils.set_value(self, :type_map_for_results, PG::TypeMapAllStrings.new) do
86
+ args ? async_exec_params(sql, args) : async_exec(sql)
87
+ end
88
88
  end
89
89
  end
90
90
  end
@@ -15,8 +15,16 @@ module Sequel
15
15
 
16
16
  Utils.add_prepared_statements_cache(conn)
17
17
 
18
+ yield conn
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def _execute(type, sql, opts, &block)
25
+ synchronize(opts[:server]) do |conn|
18
26
  Utils.set_value(conn, :results_as_hash, nil) do
19
- yield conn
27
+ super
20
28
  end
21
29
  end
22
30
  end
@@ -13,8 +13,6 @@ module Sequel
13
13
  serializable: :serializable,
14
14
  }
15
15
 
16
- ACTIVERECORD_CALLBACKS = Object.new.extend(AfterCommitEverywhere)
17
-
18
16
  def self.extended(db)
19
17
  db.activerecord_model = ActiveRecord::Base
20
18
  db.opts[:test] = false unless db.opts.key?(:test)
@@ -50,7 +48,7 @@ module Sequel
50
48
 
51
49
  # Match database timezone with Active Record.
52
50
  def timezone
53
- @timezone || ActiveRecord::Base.default_timezone
51
+ @timezone || activerecord_timezone
54
52
  end
55
53
 
56
54
  private
@@ -108,7 +106,7 @@ module Sequel
108
106
  # after_commit_everywhere gem.
109
107
  def add_transaction_hook(conn, type, block)
110
108
  if _trans(conn)[:activerecord]
111
- ACTIVERECORD_CALLBACKS.public_send(type, &block)
109
+ AfterCommitEverywhere.public_send(type, &block)
112
110
  else
113
111
  super
114
112
  end
@@ -120,12 +118,18 @@ module Sequel
120
118
  # after_commit_everywhere gem.
121
119
  def add_savepoint_hook(conn, type, block)
122
120
  if _trans(conn)[:savepoints].last[:activerecord]
123
- ACTIVERECORD_CALLBACKS.public_send(type, &block)
121
+ AfterCommitEverywhere.public_send(type, &block)
124
122
  else
125
123
  super
126
124
  end
127
125
  end
128
126
 
127
+ # Prevents sql_log_normalizer DB extension from skipping the normalization.
128
+ def skip_logging?
129
+ return false if @loaded_extensions.include?(:sql_log_normalizer)
130
+ super
131
+ end
132
+
129
133
  # Active Record doesn't guarantee that a single connection can only be used
130
134
  # by one thread at a time, so we need to use locking, which is what Active
131
135
  # Record does internally as well.
@@ -152,6 +156,16 @@ module Sequel
152
156
  &block
153
157
  )
154
158
  end
159
+
160
+ if ActiveRecord::VERSION::MAJOR >= 7
161
+ def activerecord_timezone
162
+ ActiveRecord.default_timezone
163
+ end
164
+ else
165
+ def activerecord_timezone
166
+ ActiveRecord::Base.default_timezone
167
+ end
168
+ end
155
169
  end
156
170
 
157
171
  Database.register_extension(:activerecord_connection, ActiveRecordConnection)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "sequel-activerecord_connection"
3
- spec.version = "1.2.1"
3
+ spec.version = "1.2.5"
4
4
  spec.authors = ["Janko Marohnić"]
5
5
  spec.email = ["janko.marohnic@gmail.com"]
6
6
 
@@ -9,15 +9,15 @@ Gem::Specification.new do |spec|
9
9
  spec.homepage = "https://github.com/janko/sequel-activerecord_connection"
10
10
  spec.license = "MIT"
11
11
 
12
- spec.required_ruby_version = ">= 2.3"
12
+ spec.required_ruby_version = ">= 2.4"
13
13
 
14
14
  spec.add_dependency "sequel", "~> 5.16"
15
- spec.add_dependency "activerecord", ">= 4.2", "< 7"
16
- spec.add_dependency "after_commit_everywhere", "~> 0.1.5"
15
+ spec.add_dependency "activerecord", ">= 4.2", "< 8"
16
+ spec.add_dependency "after_commit_everywhere", "~> 1.1"
17
17
 
18
18
  spec.add_development_dependency "sequel", "~> 5.38"
19
19
  spec.add_development_dependency "minitest"
20
- spec.add_development_dependency "warning" if RUBY_VERSION >= "2.4"
20
+ spec.add_development_dependency "warning"
21
21
 
22
22
  spec.files = Dir["README.md", "LICENSE.txt", "CHANGELOG.md", "lib/**/*.rb", "*.gemspec"]
23
23
  spec.require_paths = ["lib"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-activerecord_connection
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janko Marohnić
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-10 00:00:00.000000000 Z
11
+ date: 2021-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '4.2'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '7'
36
+ version: '8'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: '4.2'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '7'
46
+ version: '8'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: after_commit_everywhere
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.5
53
+ version: '1.1'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 0.1.5
60
+ version: '1.1'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: sequel
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +123,7 @@ homepage: https://github.com/janko/sequel-activerecord_connection
123
123
  licenses:
124
124
  - MIT
125
125
  metadata: {}
126
- post_install_message:
126
+ post_install_message:
127
127
  rdoc_options: []
128
128
  require_paths:
129
129
  - lib
@@ -131,15 +131,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: '2.3'
134
+ version: '2.4'
135
135
  required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  requirements: []
141
- rubygems_version: 3.1.4
142
- signing_key:
141
+ rubygems_version: 3.2.15
142
+ signing_key:
143
143
  specification_version: 4
144
144
  summary: Allows Sequel to use ActiveRecord connection for database interaction.
145
145
  test_files: []