ar_translate 0.1.0 → 0.2.0

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: e8666d7846ba61edb998c0d30aef7dd695b5c10e
4
- data.tar.gz: 7647b7eef464793712146ecb9d4f231d97797b69
3
+ metadata.gz: 3f70d164d2d2358146f3c13f5e6883e38436d126
4
+ data.tar.gz: e01dce3b7ce9f1fb2e50952e16dd1f5f97eb5a97
5
5
  SHA512:
6
- metadata.gz: fc7bf2b4429dca5dd301cb3d4c6a39d6b8ca2e4c01efb0acf707ec0ce186678483cd2176da308ea0e0cc1c8e296d2a2553497665ee6852a3c9b04ddaff269b9d
7
- data.tar.gz: 9739ca357a7cac1db0b61b54fc4729e37d9b284597d65597a24fe8408eb5736e48469efc254c6ba0fe644906ee4348b97b7fd852d3303e6be537755fcc1c939e
6
+ metadata.gz: 82904f7f935d5bc94f3223ea15507251785708c1a3f991ae64b382c0681183b73335c4e01b37ec41f7f7c259915cf960fd3437c336260017499266ada8188d64
7
+ data.tar.gz: c83c2c5f7a41ada4f5b7706f4c96b67ae8bbc6136eb43b3cc82e2123150de121a22055ef8fdf34808f8f27721e5d85c0055ec98b7bd5a9a6e281085885412807
data/README.md CHANGED
@@ -26,7 +26,7 @@ Add the following to your model:
26
26
  class Post < ActiveRecord::Base
27
27
  extend ArTranslate
28
28
 
29
- translates :descriptions, languages: %w(de en)
29
+ translates :descriptions, languages: %w(de en es)
30
30
  end
31
31
  ```
32
32
 
@@ -45,10 +45,10 @@ post.description_de
45
45
  # => 'Hallo wie geht es dir?'
46
46
 
47
47
  post.description_languages
48
- # => ['de', 'en']
48
+ # => ['de', 'en', 'es']
49
49
 
50
50
  post.description_attributes
51
- # => [:description_de, :description_en]
51
+ # => [:description_de, :description_en, :description_es]
52
52
  ```
53
53
 
54
54
  This makes it really easy to use forms with translated attributes:
@@ -59,6 +59,19 @@ This makes it really easy to use forms with translated attributes:
59
59
  = f.text_field attr
60
60
  ```
61
61
 
62
+ Or you can add validations to your model:
63
+ ```ruby
64
+ class Post < ActiveRecord::Base
65
+ extend ArTranslate
66
+
67
+ translates :descriptions, languages: %w(de en es)
68
+
69
+ description_attributes.each do |attr|
70
+ validates attr, length: { in: 20..200 }
71
+ end
72
+ end
73
+ ```
74
+
62
75
  ## License
63
76
 
64
77
  MIT, see LICENSE.txt
@@ -66,6 +66,16 @@ module ArTranslate
66
66
  end
67
67
  end
68
68
 
69
+ def model_class_method(name, &block)
70
+ method_name = "#{prefix}_#{name}"
71
+
72
+ model.instance_eval do
73
+ define_singleton_method(method_name) do |*args|
74
+ instance_exec(*args, &block)
75
+ end
76
+ end
77
+ end
78
+
69
79
  def define_reader(lang)
70
80
  c_column = column
71
81
  model_method(lang) do
@@ -83,11 +93,13 @@ module ArTranslate
83
93
  def define_attributes
84
94
  c_attributes = attributes
85
95
  model_method(:attributes) { c_attributes }
96
+ model_class_method(:attributes) { c_attributes }
86
97
  end
87
98
 
88
99
  def define_languages
89
100
  c_langs = langs
90
101
  model_method(:languages) { c_langs }
102
+ model_class_method(:languages) { c_langs }
91
103
  end
92
104
  end
93
105
  end
@@ -1,3 +1,3 @@
1
1
  module ArTranslate
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niko Dziemba