globalized_method 0.1.1 → 0.1.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: 8a0bada013941fe3cacbe3efe4a4542878e8910659d4793911f80402c5b9bed6
4
- data.tar.gz: b09b83a78ff8692492a44d8b55f8e5aeaed03d5f56db38a30e28a93bddb946c1
3
+ metadata.gz: ef790195e3fa73b988a7edcec94e38ff897a8efc30ba28134266c30c374376f3
4
+ data.tar.gz: a7fb476c3fa08b081133e102c8683f4b25163463b1dbae69beafa3a4dcaccfd7
5
5
  SHA512:
6
- metadata.gz: fca9764e72a3284bc124adacd268f1ef0181f81cf43ce82badf490e87899bc310d8b1d6cb1e613bf03552e213bf5b661e09ee72d6b50412ce187f320e983d564
7
- data.tar.gz: f06688279ed58077c275152a1025f49fa502a1c89573180e2a0eecbffa768770b3b2183bfb5b8dcadb3d0d87549c36bbc032ad69f21e7398d2c4b5ca0a1d08e9
6
+ metadata.gz: fad901187e2c91977bd022465bafae588167a84b0c7d94c6da94e657a8e760127d02e12c09d3d418a60fb702498898a6af2e2d9a4b67e70d513b19a3abc2362a
7
+ data.tar.gz: 0a0dc102a09d239fa7b0e2c5154190fe4a201cff4278cd0b1ec000f2fe8a7356367a5943dff0dc948f922601f231b8f84de0e4a48c0b8d8d1f461893c3708003
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- globalized_method (0.1.0)
4
+ globalized_method (0.1.1)
5
5
  activesupport
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -15,8 +15,14 @@ GlobalizedMethod.fallbacks[:ru] = %i[en]
15
15
  class Item < ApplicationRecord # or BasicObject (works the same)
16
16
  include GlobalizedMethod
17
17
 
18
+ # 1)
18
19
  globalized_method :name, fallbacks: { ru: %i[en] }
19
20
 
21
+ # 2)
22
+ globalized_method :name, fallbacks: ->(record) do
23
+ record.name_international
24
+ end
25
+
20
26
  def name_en
21
27
  'some name'
22
28
  end
@@ -32,14 +32,20 @@ module GlobalizedMethod
32
32
 
33
33
  # @example globalized_method :name, fallbacks: { uk: %i[ru en] }
34
34
  def globalized_method(prefix, fallbacks: {})
35
- class_eval <<~METHODS, __FILE__, __LINE__ + 1
36
- def #{prefix}
37
- public_send("#{prefix}_" + I18n.locale.to_s).presence || #{fallbacks.merge(GlobalizedMethod.fallbacks)}.fetch(I18n.locale, []).each do |locale|
38
- result = public_send("#{prefix}_" + locale.to_s).presence
39
- return result if result
40
- end.presence
35
+ if fallbacks.respond_to?(:call)
36
+ define_method(prefix) do
37
+ public_send("#{prefix}_#{I18n.locale}").presence || fallbacks.call(self)
41
38
  end
42
- METHODS
39
+ else
40
+ class_eval <<~METHODS, __FILE__, __LINE__ + 1
41
+ def #{prefix}
42
+ public_send("#{prefix}_" + I18n.locale.to_s).presence || #{fallbacks.merge(GlobalizedMethod.fallbacks)}.fetch(I18n.locale, []).each do |locale|
43
+ result = public_send("#{prefix}_" + locale.to_s).presence
44
+ return result if result
45
+ end.presence
46
+ end
47
+ METHODS
48
+ end
43
49
  end
44
50
  end
45
51
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module
4
- GlobalizedMethod
5
- VERSION = '0.1.1'
3
+ module GlobalizedMethod
4
+ VERSION = '0.1.2'
6
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: globalized_method
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aliaksander Shylau