acts_as_list 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc38c9c0378653bb5f8eb7194bd9cc22d906df7cf2b7a158e9fe763a0d6f5a94
4
- data.tar.gz: c67158a399378bab4f1258ba6819f9cb7715eedc0b63e1f995869d0032075b75
3
+ metadata.gz: af90a91e87476f41d5712ba02b1e409558b4b96e1a8ad4c448a18c21f6a39d88
4
+ data.tar.gz: 8441f44a8ad1e71639a29dc6e11477b728a0d8dbbe78d6d1e93d465ef7384697
5
5
  SHA512:
6
- metadata.gz: 8b4b29d19abf1dbc2b0c75b4f0a0e4123ec4580084a170af83ca3431ca0bc7d46fa108ba3d6573620585bb00332c0b2b10b68779d2a4fd899fcfc888601e83ab
7
- data.tar.gz: 2c999ec1287f4fafacd7406317075c5a0410f84a8c7e0b96ec787fffee0209033ca78aa4947948aee830fe41a6de173ad031fe5895daf33b12679140507aa278
6
+ metadata.gz: 15add9a3324c4a2aa8e03de8bae61be55e05362a65eac09fbd9f3d0924d8e79f7ebdbbb2bcff98cdec58830c041831385c2b5795c4f5857e1c220fc4aec49c1b
7
+ data.tar.gz: c57ac0454483abbe36e2c37dfb63525c40254f4f419a11367356a505df611d49cc55b422143a30bdbe624788e785d24f1effd6b9b4478d5c8293373e61292056
data/CHANGELOG.md CHANGED
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## v1.2.3 - 2024-10-14
10
+
11
+ ### Changed
12
+ - Use `.with_connection do |connection|` where possible instead of `.connection` [\#441](https://github.com/brendon/acts_as_list/pull/441) ([flood4life])
13
+
9
14
  ## v1.2.2 - 2024-07-16
10
15
 
11
16
  ### Fixed
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './with_connection'
4
+
3
5
  module ActiveRecord
4
6
  module Acts #:nodoc:
5
7
  module List #:nodoc:
@@ -459,7 +461,9 @@ module ActiveRecord
459
461
 
460
462
  # When using raw column name it must be quoted otherwise it can raise syntax errors with SQL keywords (e.g. order)
461
463
  def quoted_position_column
462
- @_quoted_position_column ||= self.class.connection.quote_column_name(position_column)
464
+ @_quoted_position_column ||= ActiveRecord::Acts::List::WithConnection.new(self.class).call do |connection|
465
+ connection.quote_column_name(position_column)
466
+ end
463
467
  end
464
468
 
465
469
  # Used in order clauses
@@ -481,9 +485,8 @@ module ActiveRecord
481
485
  requirement.satisfied_by?(version)
482
486
  end
483
487
 
484
- def primary_key_condition(id = nil)
485
- primary_keys = Array.wrap(self.class.primary_key)
486
- id ? primary_keys.zip(Array.wrap(id)).to_h : slice(*primary_keys)
488
+ def primary_key_condition(id = self.id)
489
+ { self.class.primary_key => [id] }
487
490
  end
488
491
  end
489
492
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './with_connection'
4
+
3
5
  module ActiveRecord::Acts::List::PositionColumnMethodDefiner #:nodoc:
4
6
  def self.call(caller_class, position_column, touch_on_update)
5
7
  define_class_methods(caller_class, position_column, touch_on_update)
@@ -15,7 +17,9 @@ module ActiveRecord::Acts::List::PositionColumnMethodDefiner #:nodoc:
15
17
  def self.define_class_methods(caller_class, position_column, touch_on_update)
16
18
  caller_class.class_eval do
17
19
  define_singleton_method :quoted_position_column do
18
- @_quoted_position_column ||= connection.quote_column_name(position_column)
20
+ @_quoted_position_column ||= ActiveRecord::Acts::List::WithConnection.new(self).call do |connection|
21
+ connection.quote_column_name(position_column)
22
+ end
19
23
  end
20
24
 
21
25
  define_singleton_method :quoted_position_column_with_table_name do
@@ -72,18 +76,22 @@ module ActiveRecord::Acts::List::PositionColumnMethodDefiner #:nodoc:
72
76
  cached_quoted_now = quoted_current_time_from_proper_timezone
73
77
 
74
78
  timestamp_attributes_for_update_in_model.map do |attr|
75
- ", #{self.class.connection.quote_column_name(attr)} = #{cached_quoted_now}"
79
+ ActiveRecord::Acts::List::WithConnection.new(self.class).call do |connection|
80
+ ", #{connection.quote_column_name(attr)} = #{cached_quoted_now}"
81
+ end
76
82
  end.join
77
83
  end
78
84
 
79
85
  private
80
86
 
81
87
  def quoted_current_time_from_proper_timezone
82
- self.class.connection.quote(
83
- self.class.connection.quoted_date(
84
- current_time_from_proper_timezone
88
+ ActiveRecord::Acts::List::WithConnection.new(self.class).call do |connection|
89
+ connection.quote(
90
+ connection.quoted_date(
91
+ current_time_from_proper_timezone
92
+ )
85
93
  )
86
- )
94
+ end
87
95
  end
88
96
  end
89
97
  end
@@ -1,24 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './with_connection'
4
+
3
5
  module ActiveRecord::Acts::List::SequentialUpdatesMethodDefiner #:nodoc:
4
6
  def self.call(caller_class, column, sequential_updates_option)
5
7
  caller_class.class_eval do
6
8
  define_method :sequential_updates? do
7
- if !defined?(@sequential_updates)
8
- if sequential_updates_option.nil?
9
- table_exists =
10
- if active_record_version_is?('>= 5')
11
- caller_class.connection.data_source_exists?(caller_class.table_name)
12
- else
13
- caller_class.connection.table_exists?(caller_class.table_name)
14
- end
15
- index_exists = caller_class.connection.index_exists?(caller_class.table_name, column, unique: true)
16
- @sequential_updates = table_exists && index_exists
17
- else
18
- @sequential_updates = sequential_updates_option
19
- end
20
- else
21
- @sequential_updates
9
+ return @sequential_updates if defined?(@sequential_updates)
10
+
11
+ return @sequential_updates = sequential_updates_option unless sequential_updates_option.nil?
12
+
13
+ ActiveRecord::Acts::List::WithConnection.new(caller_class).call do |connection|
14
+ table_exists =
15
+ if active_record_version_is?('>= 5')
16
+ connection.data_source_exists?(caller_class.table_name)
17
+ else
18
+ connection.table_exists?(caller_class.table_name)
19
+ end
20
+ index_exists = connection.index_exists?(caller_class.table_name, column, unique: true)
21
+ @sequential_updates = table_exists && index_exists
22
22
  end
23
23
  end
24
24
 
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveRecord
4
+ module Acts
5
+ module List
6
+ class WithConnection
7
+ def initialize(recipient)
8
+ @recipient = recipient
9
+ end
10
+
11
+ attr_reader :recipient
12
+
13
+ def call
14
+ if recipient.respond_to?(:with_connection)
15
+ recipient.with_connection do |connection|
16
+ yield connection
17
+ end
18
+ else
19
+ yield recipient.connection
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -3,7 +3,7 @@
3
3
  module ActiveRecord
4
4
  module Acts
5
5
  module List
6
- VERSION = '1.2.2'
6
+ VERSION = '1.2.3'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swanand Pagnis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-07-15 00:00:00.000000000 Z
12
+ date: 2024-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -150,6 +150,7 @@ files:
150
150
  - lib/acts_as_list/active_record/acts/scope_method_definer.rb
151
151
  - lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
152
152
  - lib/acts_as_list/active_record/acts/top_of_list_method_definer.rb
153
+ - lib/acts_as_list/active_record/acts/with_connection.rb
153
154
  - lib/acts_as_list/version.rb
154
155
  homepage: https://github.com/brendon/acts_as_list
155
156
  licenses: