composite_primary_keys 11.0.2 → 11.0.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: 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