teron 0.0.8 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/associations/belongs_to.rb +18 -5
  3. metadata +10 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc7987d1adca37e5e5706ff9fdbeca077ef28a130d54ca046368dd2ed8139e26
4
- data.tar.gz: bbdf6db66b23c1a1173b15d6e6811f279856883cc399e11505577032988a009e
3
+ metadata.gz: a11a837066e8f42470ac26f45f64f85990dd26e983fba6a6bc81fdeba3d52d1b
4
+ data.tar.gz: f4ad97330285f4bd9a75350966c93072015dac17cdef951d7380c3423c6692df
5
5
  SHA512:
6
- metadata.gz: 38d06c4f49b93497de80cb25800e154be38fa88becab7d6143518061c19b4f073a8906b6a7bf7408b5f7b6d956c809a8c66588ed935635f269893f25d3e252be
7
- data.tar.gz: e03bf8b54a4774ccac65b23a7e00d9a5b2aaceb425223c1b5ef6acb05faa02a6e40ccbf7a7416bbf8a5835243a97aedde0abb5d4e4a43abdb359ebe7706ef998
6
+ metadata.gz: dde2d3852a53a3ee5b52b93be811daffdbd9fd3ccd511e056ad67541eae7f22c23f253a7fec2bdc6eb9c887d86998408f9fecf7256d7cecf05f9117d720948ed
7
+ data.tar.gz: b4e57bdc92b4a03169703b56993a603b68e2df3d7ebc376421051f28fe778db493e5712a88435bc3b5494ca6f3280ac587da40208c9a8be3824e36a8e47748cb
@@ -36,12 +36,25 @@ module TeronAssociation
36
36
  # Destroy
37
37
  # ==================================
38
38
  define_method('destroy!') do
39
- # Get Association Name
40
- klass_name = self.class.name.downcase.singularize
41
- # self.class._obj_clear(id)
39
+ return unless inverse
42
40
 
43
- # Remove from included object`
44
- send(class_name)&.send("#{klass_name}_remove", self) if inverse
41
+ # Get Association Name
42
+ klass_single_name = self.class.name.downcase.singularize
43
+ klass_plural_name = self.class.name.downcase.pluralize
44
+
45
+ parent = send(class_name)
46
+ return unless parent
47
+
48
+ # ==================================
49
+ # Has One vs Has Many
50
+ # ==================================
51
+ # Has one
52
+ if parent.respond_to?("#{klass_single_name}_remove".to_sym)
53
+ parent.send("#{klass_single_name}_remove", self)
54
+ # Has Many
55
+ elsif parent.respond_to?("#{klass_plural_name}_remove".to_sym)
56
+ parent.send("#{klass_plural_name}_remove", self)
57
+ end
45
58
 
46
59
  super()
47
60
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davin Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2023-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0.80'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0.80'
54
+ version: '0'
55
55
  description: Gimme an easy way to initialize database less classes
56
56
  email:
57
57
  - dishcandanty@gmail.com
@@ -65,10 +65,11 @@ files:
65
65
  - lib/field.rb
66
66
  - lib/record.rb
67
67
  - lib/teron.rb
68
- homepage: https://gitlab.com/davinwalker/teron
68
+ homepage: https://gitlab.com/dishcandanty/teron
69
69
  licenses:
70
70
  - MIT
71
- metadata: {}
71
+ metadata:
72
+ rubygems_mfa_required: 'true'
72
73
  post_install_message:
73
74
  rdoc_options: []
74
75
  require_paths:
@@ -84,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
85
  - !ruby/object:Gem::Version
85
86
  version: '0'
86
87
  requirements: []
87
- rubygems_version: 3.0.3
88
+ rubygems_version: 3.3.26
88
89
  signing_key:
89
90
  specification_version: 4
90
91
  summary: Experimental Simple Class Initialization