better_record 0.22.3 → 0.22.4

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: cce50574a4e95858de7fe1de919d6cdffe29c51246203d4989de4bce44ed9aab
4
- data.tar.gz: a553f2797bc8f10387caede3622f6eec6c2403d74560180588584920f5a5c027
3
+ metadata.gz: d426d50cc2eb9e82f0aaaddbe50f9ca65381cca3af47576860b919f55e7ab2cf
4
+ data.tar.gz: 26e92d8f35ff71f9c297f274f2e96df77064d5f4995fb73c54188b964f343532
5
5
  SHA512:
6
- metadata.gz: 4cd7258cf3b5b193dc40b56739927db8e71ad04cb135d65e4504211416bb5a503790f749b677b9138f125100aa5d91566490d19d446038a3c9df263706b1b963
7
- data.tar.gz: 9fd2da6a802410314a7ee890feb62d397c0fecb2b56b2a8c21dffae56f0ab5bda55ae4e6a87c5ccbfec63c075700198db7735139f1ca4aba0c24fa82c9d8f980
6
+ metadata.gz: 260ce5d391640da67b9046744fdae9441b2c7be2972e8c249a3957b625af1a4f508ca31053bf063035fd1ef8c1eef58da89e79de50ae225d41027a4eee12906c
7
+ data.tar.gz: 68e6e7120f64441c6281747a051cbf908337595085ca8a8cdd24769585856d94e96def576a8845b7f93fa0e197d6fb0a0427421731f05de1cda8eac80ed55846
@@ -5,11 +5,21 @@ require 'active_record/reflection'
5
5
  module ActiveRecord
6
6
  module Reflection
7
7
  class AbstractReflection
8
- def join_scope(table, foreign_klass)
8
+ def join_scope(table, foreign_table, foreign_klass = nil)
9
+ unless foreign_klass
10
+ foreign_klass = foreign_table
11
+ foreign_table = nil
12
+ end
13
+
9
14
  predicate_builder = predicate_builder(table)
10
15
  scope_chain_items = join_scopes(table, predicate_builder)
11
16
  klass_scope = klass_join_scope(table, predicate_builder)
12
17
 
18
+ key = join_keys.key
19
+ foreign_key = join_keys.foreign_key
20
+
21
+ klass_scope.where!(table[key].eq(foreign_table[foreign_key])) if foreign_table
22
+
13
23
  if type
14
24
  if options[:strict_primary_type]
15
25
  klass_scope.where!(type => BetterRecord::PolymorphicOverride.polymorphic_value(foreign_klass, options))
@@ -18,10 +28,33 @@ module ActiveRecord
18
28
  end
19
29
  end
20
30
 
31
+ ntc =
32
+ begin
33
+ klass.finder_needs_type_condition?
34
+ rescue
35
+ false
36
+ end
37
+
38
+ if ntc
39
+ klass_scope.where!(klass.send(:type_condition, table))
40
+ end
41
+
21
42
  scope_chain_items.inject(klass_scope, &:merge!)
22
43
  end
23
44
  end
24
45
 
46
+ class MacroReflection < AbstractReflection
47
+ end
48
+
49
+ class ThroughReflection < AbstractReflection #:nodoc:
50
+ delegate :foreign_key, :foreign_type, :association_foreign_key, :join_id_for,
51
+ :active_record_primary_key, :type, :get_join_keys, to: :source_reflection
52
+ end
53
+
54
+ class PolymorphicReflection < AbstractReflection # :nodoc:
55
+ delegate :klass, :scope, :plural_name, :type, :get_join_keys, :scope_for, to: :@reflection
56
+ end
57
+
25
58
  class RuntimeReflection < AbstractReflection # :nodoc:
26
59
  delegate :scope, :type, :constraints, :get_join_keys, :options, to: :@reflection
27
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.22.3'
4
+ VERSION = '0.22.4'
5
5
  end
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.6.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.3
4
+ version: 0.22.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-24 00:00:00.000000000 Z
11
+ date: 2019-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 5.2.2.1
22
+ version: 5.2.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.2.2.1
32
+ version: 5.2.3
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: pg
35
35
  requirement: !ruby/object:Gem::Requirement