rails_translates_value 0.0.1 → 0.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
  SHA1:
3
- metadata.gz: c13b02747158be76e15c016b6f14e08b900870b0
4
- data.tar.gz: 547d0337df554206f1776f4b28e4380552e9ae64
3
+ metadata.gz: 6de8539d338beeab9ec678a5dd9fac404539689e
4
+ data.tar.gz: 5ffb19020d1d3e4d8ac4a7c23d2ed8284a5e6f63
5
5
  SHA512:
6
- metadata.gz: 34eb667260ea8e4830e9665f1f11dab2c00669d64980cf29dd8ba61aefc975c4a46b9095db5678a7b5026dcb519137cd4fa9fa1c38bbd09de0be743fdb460c91
7
- data.tar.gz: 5f9a4553d522372c712116d3a0e626b380ab656e2a72d68d7c04e9b25881688bcb4025f25a6066e5870646c185d05c74e7041ba0985ea81e835bb6dd2722b008
6
+ metadata.gz: 6c46b2ce67c78069cea74db917ef8c9ed09269031abc57b6546ab01dd5402aa7377be6bd1a10048964837398f1758bc5d130e61d869234b4f6bb754f5d7a9b9e
7
+ data.tar.gz: b4386d5d371c2a2c646380cebb2fa64453e1011559e5154f177029a573289e7ca3c5289e706082d4951258a5352b9428bb4666f11dada3f4d3ae80da078b6d23
@@ -0,0 +1,59 @@
1
+ require 'active_support/concern'
2
+
3
+ module Concerns
4
+ module Model
5
+ module TranslatedAttrAccessor
6
+ extend ActiveSupport::Concern
7
+
8
+ class_methods do
9
+ def translated_attr_accessor(*args)
10
+ _ = args.extract_options!
11
+
12
+ attributes = args
13
+
14
+ attributes.each do |attribute|
15
+ I18n.available_locales.each do |locale|
16
+ reader_method_name = "#{attribute}_#{locale}"
17
+ writer_method_name = "#{attribute}_#{locale}="
18
+
19
+ define_method attribute do |locale = I18n.locale|
20
+ name = __method__
21
+ key = read_attribute(:identifier)
22
+ read_translated_attribute(name, key, locale)
23
+ end
24
+
25
+ define_method reader_method_name do
26
+ locale = __method__.to_s.split("_").last
27
+ name = __method__.to_s.gsub("_#{locale}", '')
28
+ key = read_attribute(:identifier)
29
+ read_translated_attribute(name, key, locale)
30
+ end
31
+
32
+ define_method writer_method_name do |value|
33
+ locale = __method__.to_s.split("_").last.gsub("=", '')
34
+ name = __method__.to_s.gsub("_#{locale}=", "")
35
+ key = read_attribute(:identifier)
36
+ write_translated_attribute(name, key, value, locale)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ # private
44
+
45
+ def write_translated_attribute(name, key, value, locale)
46
+ key = "activerecord.values.#{self.class.name.underscore}.#{name}.#{key}"
47
+ Ecm::Translations::Translation.where(locale: locale, key: key).first_or_initialize.update_attribute(:value, value)
48
+ I18n.reload!
49
+ value
50
+ end
51
+
52
+ def read_translated_attribute(name, key, locale)
53
+ I18n.with_locale(locale) do
54
+ I18n.t("activerecord.values.#{self.class.name.underscore}.#{name}.#{key}", default: '')
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsTranslatesValue
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_translates_value
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-09 00:00:00.000000000 Z
11
+ date: 2016-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -76,6 +76,7 @@ files:
76
76
  - MIT-LICENSE
77
77
  - README.rdoc
78
78
  - Rakefile
79
+ - app/models/concerns/model/translated_attr_accessor.rb
79
80
  - app/models/concerns/model/translates_value.rb
80
81
  - lib/rails_translates_value.rb
81
82
  - lib/rails_translates_value/engine.rb
@@ -106,3 +107,4 @@ signing_key:
106
107
  specification_version: 4
107
108
  summary: Translate rails active model values with i18n.
108
109
  test_files: []
110
+ has_rdoc: