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 +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