composite_primary_keys 11.0.2 → 11.0.3

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: fe7dfdfaa1b55a68763587de0f1d7b9fd7c1264fa83a666db64886571dfb890a
4
- data.tar.gz: 06f9267179912b8b873f096580bfc0a22407878ce94b06dca805ff34f14ecc47
3
+ metadata.gz: cb2211207f8a43539739b1d61b5d9f0c655e5ef3d1a0d53a7399fe550c25d36e
4
+ data.tar.gz: 512b0acad25f57c1d9796c7196827bf9a3c58be3319df5f6c0a11ea16658da09
5
5
  SHA512:
6
- metadata.gz: dbda63a50cf354490318d0ef5ff082a62b146de042cb8e462b28fac283ce647040f4410960ce0b1fb0c12fee99c43a6ac9d17fc0f4d8771133bb654b61c50ed7
7
- data.tar.gz: b360de0431222facb297a066519fcab4f9a32ce61d64a3e7d1cb8a0ce9535894b1b1d9c92262e29a10c4ae996f18e5e2a3c2a27af650790ed2995f2bfe02185b
6
+ metadata.gz: 19c175e1fc9f6ee5290573b75a1370314cfdb0598f65397ac99d616cc48d7a8a7a679ead3040f17249ff3419cbb0bb39355dc458dc4c12ce1235cf04b6dcf8be
7
+ data.tar.gz: ae880cc7d8c05910b601b9ca99a935468ec70bc6f440daf1015e1932f1544d73340f3bbacd8513a7cfe1f0f86d31df7c74b0ca2da47d31424027b58a012ce2d0
data/History.rdoc CHANGED
@@ -1,3 +1,6 @@
1
+ == 11.0.3 (2018-06-25)
2
+ * Fix overridden attribute readers and writers (Charlie Savage)
3
+
1
4
  == 11.0.2 (2018-06-24)
2
5
  * Remove no longer needed overrides (Charlie Savage)
3
6
 
@@ -2,16 +2,22 @@ module ActiveRecord
2
2
  module AttributeMethods
3
3
  module Read
4
4
  def read_attribute(attr_name, &block)
5
+ name = if self.class.attribute_alias?(attr_name)
6
+ # CPK
7
+ # self.class.attribute_alias(attr_name).to_s
8
+ self.class.attribute_alias(attr_name)
9
+ else
10
+ # CPK
11
+ # attr_name.to_s
12
+ attr_name
13
+ end
14
+
15
+ primary_key = self.class.primary_key
5
16
  # CPK
6
- if attr_name.kind_of?(Array) || attr_name.to_s == 'id'.freeze && @attributes.key?('id')
7
- _read_attribute(attr_name, &block)
8
- else
9
- name = attr_name.to_s
10
- # CPK
11
- #name = self.class.primary_key if name == 'id'.freeze
12
- name = self.class.primary_key if name == 'id'.freeze && !composite?
13
- _read_attribute(name, &block)
14
- end
17
+ # name = primary_key if name == "id".freeze && primary_key
18
+ name = primary_key if name == "id".freeze && primary_key && !composite?
19
+ sync_with_transaction_state if name == primary_key
20
+ _read_attribute(name, &block)
15
21
  end
16
22
 
17
23
  def _read_attribute(attr_name)
@@ -3,41 +3,35 @@ module ActiveRecord
3
3
  module Write
4
4
  def write_attribute(attr_name, value)
5
5
  name = if self.class.attribute_alias?(attr_name)
6
- # CPK
7
- # self.class.attribute_alias(attr_name).to_s
8
- self.class.attribute_alias(attr_name)
9
- else
10
- # CPK
11
- # attr_name.to_s
12
- attr_name
13
- end
6
+ # CPK
7
+ #self.class.attribute_alias(attr_name).to_s
8
+ self.class.attribute_alias(attr_name)
9
+ else
10
+ # CPK
11
+ # attr_name.to_s
12
+ attr_name
13
+ end
14
14
 
15
- write_attribute_with_type_cast(name, value, true)
15
+ primary_key = self.class.primary_key
16
+ # CPK
17
+ # name = primary_key if name == "id".freeze && primary_key
18
+ name = primary_key if name == "id".freeze && primary_key && !composite?
19
+ sync_with_transaction_state if name == primary_key
20
+ _write_attribute(name, value)
16
21
  end
17
22
 
18
- def write_attribute_with_type_cast(attr_name, value, should_type_cast)
23
+ def _write_attribute(attr_name, value) # :nodoc:
19
24
  # CPK
20
25
  if attr_name.kind_of?(Array)
21
- value = [nil]*attr_name.length if value.nil?
22
- unless value.length == attr_name.length
23
- raise "Number of attr_names #{attr_name.inspect} and values #{value.inspect} do not match"
26
+ attr_name.each_with_index do |attr_child_name, i|
27
+ child_value = value ? value[i] : value
28
+ @attributes.write_from_user(attr_child_name.to_s, child_value)
24
29
  end
25
- [attr_name, value].transpose.map {|name,val| write_attribute(name, val)}
26
- value
27
30
  else
28
- attr_name = attr_name.to_s
29
- # CPK
30
- # attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key
31
- attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key && !self.composite?
32
-
33
- if should_type_cast
34
- @attributes.write_from_user(attr_name, value)
35
- else
36
- @attributes.write_cast_value(attr_name, value)
37
- end
38
-
39
- value
31
+ @attributes.write_from_user(attr_name.to_s, value)
40
32
  end
33
+
34
+ value
41
35
  end
42
36
  end
43
37
  end
@@ -2,7 +2,7 @@ module CompositePrimaryKeys
2
2
  module VERSION
3
3
  MAJOR = 11
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
  STRING = [MAJOR, MINOR, TINY].join('.')
7
7
  end
8
8
  end
@@ -237,7 +237,7 @@ class TestAssociations < ActiveSupport::TestCase
237
237
  assert_equal({"department_id"=>[1, 2]}, steve.changes)
238
238
  end
239
239
 
240
- def test_composite_belongs_to__setting_to_nil
240
+ def test_composite_belongs_to_setting_to_nil
241
241
  room_assignment = room_assignments(:jacksons_room)
242
242
  # This was raising an error before:
243
243
  # NoMethodError: undefined method `length' for nil:NilClass
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: composite_primary_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.2
4
+ version: 11.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Savage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-24 00:00:00.000000000 Z
11
+ date: 2018-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord