teron 0.0.8 → 0.0.10

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.
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