polymorphic_integer_type 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Y2I3YWE0OWMwZDNkZWM0MzkyZjY0NGQyNTJmMGUyZjdmY2UxYzIzNQ==
4
+ ZTIzOWYzZmZmYTA0NmI4OTQxMzZmNzE0YmNiNGM2YWVmNGIyNGI3Yw==
5
5
  data.tar.gz: !binary |-
6
- OTFkNWRmNjhiMTkwNWJmZGVhMjFkZmJiZWU5ZDQzZTRmY2ZhZGRlNg==
6
+ NzAxOWMxZmJhYWUzZTI4MzNhOWY4OGU4MTg2ZjhkNDY4ZjlhYzE1Zg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGVkMWNlN2Y5MmRlNzNlMmM2NTkwMTEzNTcyNGNmYTMzOTdlYmRlYjU1YTAy
10
- MDQyOWI4YTEyNmQ4MzIzNDFhMGIzZjAxMTNkMGI1MzMzY2ZkZDUzMzNhODg5
11
- NmE0MTBkYWJkOGE5NTdmODEwY2YwMGFjMjkwY2JiNWNhZDk4MGI=
9
+ OGNkZDRhOWE5MWJiNTA0Njg5YzdmMGM5ZjJiOWQ3ZGM0ZmFiM2Y1ZjI3MWVj
10
+ ODdiZjYxNWFlNDg0ZjQ2MDQwZTBlMGEzNTA5Y2VlMTE1OTY2NzA1NGYyNzcy
11
+ MGQ3OWZkYjQ5MDkyOGUzYjQ1MmE0ODM3MTcyN2YwODIwY2U2ZGI=
12
12
  data.tar.gz: !binary |-
13
- YzM1NDAzOTg5YjY5MjQyNGQ0MGU2ZDFhZDZjYWEyMmNjMjhjZTEyZGM4OTgw
14
- N2NiZTk5Y2ZmODE0N2NjOGU2ZWJkY2JkMGRmMzc5ZWRhNzc0MjBhMTgzMjQy
15
- Y2NlMzY5NDEzZGM0ZGNkNGYwYWQ4Y2U3Y2NlZTk1ZGQ3OTM1MjI=
13
+ OGYyOGQ4ZjQwNThkMDE2ODQ2MmU4NTFlNjdlNzg0OWU0NmY1MTg0NDBhYWYy
14
+ YmViODFlMGFlYzU2NDA1NzE0M2U3NjVmYWM5YTg1N2MwNWI0MmFkOTJmYWFh
15
+ YzAyZDY5YTk0OTU4OTYwZjA0MDNlODRjOTFlYjZkYzg4MTJiNjA=
@@ -16,9 +16,12 @@ module PolymorphicIntegerType
16
16
  mapping[t]
17
17
  end
18
18
 
19
- define_method "#{foreign_type}=" do |klass|
20
- klass = klass.base_class if klass.kind_of?(Class)
19
+ define_method "#{foreign_type}=" do |klass|
20
+ klass = klass.base_class if klass.kind_of?(Class) && klass <= ActiveRecord::Base
21
21
  enum = mapping.key(klass.to_s) || klass
22
+ if enum == NilClass
23
+ enum = nil
24
+ end
22
25
  super(enum)
23
26
  end
24
27
 
@@ -1,3 +1,3 @@
1
1
  module PolymorphicIntegerType
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
@@ -17,6 +17,16 @@ describe PolymorphicIntegerType do
17
17
 
18
18
  let(:link) { Link.create(:source => source, :target => target) }
19
19
 
20
+ context "when the source is nil" do
21
+ let(:source) { nil }
22
+ let(:target) { nil }
23
+ it "should have the no id/type for the source" do
24
+ expect(link.source_id).to be_nil
25
+ expect(link.source_type).to be_nil
26
+ expect(link.source).to be_nil
27
+ end
28
+ end
29
+
20
30
  shared_examples "proper source" do
21
31
  it "should have the proper id, type and object for the source" do
22
32
  expect(link.source_id).to eql source.id
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polymorphic_integer_type
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle d'Oliveira