hoardable 0.12.5 → 0.12.6

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: 931223031ac56883e27e5f11da07eae3b59793ca8a2c77ce4e20f67cdb730174
4
- data.tar.gz: 452472091834577883a5d56ea8b1af4375120648eaff066119edc2459c2cf035
3
+ metadata.gz: 6f7aee7a5af21b6cb079385ea2e49eb243b420c797eb8044f14af18f14abdd23
4
+ data.tar.gz: c92fc3a0adc3c253856f393c6478514e6f1fe83237b75a37b89dd01325e94773
5
5
  SHA512:
6
- metadata.gz: 414a407c30d2aa0f504cd89773a83dd0b775bbbed51c8f7dbaa4225141aa34d301aac6167b6ce3553af02f03e8e2d1a053b58b4f9946814d5fb1b17282f86817
7
- data.tar.gz: 995256175f51743332171ec32e232bdf01abb7288df8987d75b4e164499cf99610dc8605a9956fed3eb0edbb736b46ae24906fdf00cf5c14fa9ec99d752647d2
6
+ metadata.gz: c24c3d1f3a985c0169a9c5d89335ef322fb86d45b8492e81197c089bf30f7431d94340d2b9d1805f42fd381bf52fcc4991ceb7fb66429ee87c5cf7025fc29c99
7
+ data.tar.gz: 171dc6db5742a1bde4f78aa9c9990325cf9658884e147888d938e02f79e0d739dd145d266c8ede202d0ee859e8a4daa323b9c8c9d12af173d002f5535577dadb
@@ -40,6 +40,20 @@ module Hoardable
40
40
  )
41
41
  end
42
42
 
43
+ def has_one_find_conditions(reflection)
44
+ {
45
+ reflection.type => source_record.class.name.sub(/Version$/, ''),
46
+ reflection.foreign_key => source_record.hoardable_id,
47
+ 'name' => (reflection.name.to_s.sub(/^rich_text_/, '') if reflection.class_name.match?(/RichText$/))
48
+ }.reject { |k, v| k.nil? || v.nil? }
49
+ end
50
+
51
+ def has_one_at_timestamp
52
+ Hoardable.instance_variable_get('@at') || source_record.updated_at
53
+ rescue NameError
54
+ raise(UpdatedAtColumnMissingError, source_record.class.table_name)
55
+ end
56
+
43
57
  def source_attributes_without_primary_key
44
58
  source_record.attributes_before_type_cast.without(source_primary_key)
45
59
  end
@@ -18,27 +18,14 @@ module Hoardable
18
18
  reflection = _reflections['#{name}']
19
19
  return super if reflection.klass.name.match?(/^ActionText/)
20
20
 
21
- super&.at(hoardable_at_timestamp) ||
22
- reflection.klass.at(hoardable_at_timestamp).find_by(
23
- {
24
- reflection.type => self.class.name.sub(/Version$/, ''),
25
- reflection.foreign_key => hoardable_id
26
- }.reject { |key, _| key.blank? }
21
+ super&.at(hoardable_client.has_one_at_timestamp) ||
22
+ reflection.klass.at(hoardable_client.has_one_at_timestamp).find_by(
23
+ hoardable_client.has_one_find_conditions(reflection)
27
24
  )
28
25
  end
29
26
  RUBY
30
27
  end
31
28
  end
32
-
33
- included do
34
- private
35
-
36
- def hoardable_at_timestamp
37
- Hoardable.instance_variable_get('@at') || updated_at
38
- rescue NameError
39
- raise(UpdatedAtColumnMissingError, self.class.table_name)
40
- end
41
- end
42
29
  end
43
30
  private_constant :HasOne
44
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hoardable
4
- VERSION = '0.12.5'
4
+ VERSION = '0.12.6'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoardable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.5
4
+ version: 0.12.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - justin talbott