passive_columns 0.2.3 → 0.3.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: 4c17e42bdf1a6871eb67811732872bfb4d4c280c91d2b6f4a76442efbf1379f5
4
- data.tar.gz: dd7937cad9f31dabf925cd15dbf051b06682483bbfeb884a713c113281bce613
3
+ metadata.gz: baf809905aa69dc2f9ee36bcb51c2c2187790c2d2455fdb0ba828546c260625f
4
+ data.tar.gz: 005e105b072004ef89f410d4470a760be689b589a9f767c6a907e31e7ffd9644
5
5
  SHA512:
6
- metadata.gz: 8c40fdcc4543ea47e4e945819a3e03328203d7157f17c0b2170cddadf45024b5dbafe7e6bf5fa8045678cf4f63b28b667f63fe49f3217ff9abffd9b2c0c9a4ef
7
- data.tar.gz: 8d13c82243de48de75116e986ba12c96949c5ad9151801dcecc9fd2da0f6f6d8ecef5cad7c23125e98571c77af582771ed9e2cbba43d63a293fdbc4f030d8fb1
6
+ metadata.gz: 02f54e4528a456f37d07e6340bbc0aeb01c672db28002ad681d5394c8d4617f3bf50ae97b1eaaa13c1d4561712554e95d5612ec239fe0bf2f246db2316f2cf6c
7
+ data.tar.gz: 72b5738f265fdc05deb98defee7853fc37427ed8922e19f0e1911bffd9cbe20e48a5a62b49afc188096e6cb9a01c958b1b851f7a1fca709d2332ea10ad4c585f
@@ -4,11 +4,20 @@ module PassiveColumns
4
4
  # ActiveRecordRelationExtension is a module that extends ActiveRecord::Relation
5
5
  # to automatically select all columns except passive columns if no columns are selected.
6
6
  module ActiveRecordRelationExtension
7
- def exec_main_query(**args)
8
- if klass.try(:_passive_columns).present? && select_values.blank?
9
- self.select_values = klass.column_names - klass._passive_columns
7
+ if ActiveRecord::VERSION::MAJOR >= 7
8
+ def exec_main_query(...)
9
+ if klass.try(:_passive_columns).present? && select_values.blank?
10
+ self.select_values = klass.column_names - klass._passive_columns
11
+ end
12
+ super
13
+ end
14
+ else
15
+ def exec_queries(...)
16
+ if klass.try(:_passive_columns).present? && select_values.blank?
17
+ self.select_values = klass.column_names - klass._passive_columns
18
+ end
19
+ super
10
20
  end
11
- super
12
21
  end
13
22
 
14
23
  def to_sql
@@ -5,7 +5,7 @@ module PassiveColumns
5
5
  class Loader
6
6
  attr_reader :passive_columns, :model
7
7
 
8
- # @param [LazyColumns] model
8
+ # @param [ActiveRecord::Base] model
9
9
  # @param [Array<Symbol>] passive_columns
10
10
  def initialize(model, passive_columns)
11
11
  @model = model
@@ -35,8 +35,16 @@ module PassiveColumns
35
35
  model.class.unscoped.where(identity_constraints).pick(column)
36
36
  end
37
37
 
38
- def identity_constraints
39
- @identity_constraints ||= model.send(:_query_constraints_hash)
38
+ if ActiveRecord::VERSION::MAJOR >= 7
39
+ def identity_constraints
40
+ @identity_constraints ||= model.send(:_query_constraints_hash)
41
+ end
42
+ else
43
+ def identity_constraints
44
+ @identity_constraints ||= {
45
+ model.instance_variable_get(:@primary_key) => model.id_in_database
46
+ }
47
+ end
40
48
  end
41
49
  end
42
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PassiveColumns
4
- VERSION = '0.2.3'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passive_columns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Golovin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-22 00:00:00.000000000 Z
11
+ date: 2024-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '7.0'
19
+ version: '6.1'
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: '7.0'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '7.0'
33
+ version: '6.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '7.0'
40
+ version: '6.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement