globalized_method 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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