tanoshimu_utils 2.0.1.1 → 2.0.2

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: 759893f5d151c66089897b1c428fe73a626c775649e38051d11125715608cbfe
4
- data.tar.gz: c26c65d9c6b6d1d1dcbdc5bbcb3ed643441fb9d6b2a87407e37d56aabb2bc3a8
3
+ metadata.gz: ceb19bd51af668df54c36d3a3816736fa30429d0ef102a2a2988e2fb69f683b5
4
+ data.tar.gz: bd6076c5b8bd97f004ff970f2943cb3160a7ad7f2687554f5b01f05ac209838f
5
5
  SHA512:
6
- metadata.gz: 21dfcc62a985a97521bf245c4752d1935a959e8845c81368304a9b4a693bb25f0501e3f024063b7e874293c86ca089fba30a8a6ed66d65c45dd2e0f46dbf9014
7
- data.tar.gz: 6c860153ebab4a61fa6eefd49bb784737b70baffdb511302d2ad06e24b43d9af58b41b41f66a99968fc4ee2313d77bd718a397f3170c21d466d2808ecbb75174
6
+ metadata.gz: 610bf66297ca0e5e916d1257e8c28b9ab9b4fa8969e23c0f641ac43bbd0ca7eda0c9a62edc9253b99656c1c656b3c85c6d7ab0f30fb6eb74bb3789765cc31c74
7
+ data.tar.gz: 899a1446770351dfa4a53ba89e18c0b315f8672efb497072ee866e02d056efd394f3ae42122063ccb7f609f462ef7245bf1ddd8362123aee5df6b88e29ccc6f6
@@ -3,3 +3,4 @@ require_relative 'concerns/identifiable'
3
3
  require_relative 'concerns/resource_fetch'
4
4
  require_relative 'concerns/respond_to_types'
5
5
  require_relative 'concerns/translatable'
6
+ require_relative 'concerns/has_translatable_field'
@@ -0,0 +1,36 @@
1
+ module TanoshimuUtils
2
+ module Concerns
3
+ module HasTranslatableField
4
+ extend ActiveSupport::Concern
5
+
6
+ class_methods do
7
+ def has_translatable_field(name, foreign_key: :model_id)
8
+ p "USING METHOD"
9
+ set_translatable_field = :"#{name}="
10
+ get_translatable_field = :"#{name}"
11
+ record_field = :"#{name}_record"
12
+ record_class = Object.const_get(name.capitalize)
13
+
14
+ send(:define_method, get_translatable_field) do
15
+ instance_variable_get("@#{name}") ||
16
+ instance_variable_set("@#{name}", send(record_field)&.value)
17
+ end
18
+
19
+ send(:define_method, set_translatable_field) do |new_record_field|
20
+ return unless new_record_field.kind_of?(record_class)
21
+
22
+ new_record_field.used_by_model = record_class.table_name
23
+ new_record_field.send(:"#{foreign_key}=", self.id)
24
+ self.send(:"#{record_field}=", new_record_field)
25
+ end
26
+
27
+ has_one(
28
+ record_field,
29
+ class_name: record_class.to_s,
30
+ foreign_key: foreign_key,
31
+ )
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module TanoshimuUtils
2
- VERSION = '2.0.1.1'
2
+ VERSION = '2.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tanoshimu_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akinyele Cafe-Febrissy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-14 00:00:00.000000000 Z
11
+ date: 2020-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -66,6 +66,7 @@ files:
66
66
  - lib/tanoshimu_utils.rb
67
67
  - lib/tanoshimu_utils/concerns.rb
68
68
  - lib/tanoshimu_utils/concerns/get_record.rb
69
+ - lib/tanoshimu_utils/concerns/has_translatable_field.rb
69
70
  - lib/tanoshimu_utils/concerns/identifiable.rb
70
71
  - lib/tanoshimu_utils/concerns/resource_fetch.rb
71
72
  - lib/tanoshimu_utils/concerns/respond_to_types.rb
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  requirements: []
98
- rubygems_version: 3.0.3
99
+ rubygems_version: 3.1.2
99
100
  signing_key:
100
101
  specification_version: 4
101
102
  summary: YourAnime.moe utilities