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