ar_translate 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -3
- data/lib/ar_translate/translated_column.rb +12 -0
- data/lib/ar_translate/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f70d164d2d2358146f3c13f5e6883e38436d126
|
4
|
+
data.tar.gz: e01dce3b7ce9f1fb2e50952e16dd1f5f97eb5a97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/ar_translate/version.rb
CHANGED