ar_translate 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ar_translate/translated_column.rb +10 -5
- 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: 6cdb52b7d481e08fd1c03a0e08b0e43a93de5efe
|
4
|
+
data.tar.gz: a1a721d8c81a700451f0723666a1a8408ce98ac0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2f6b6a5affbd7d4f0fc907574cb47983ad8cf15d22aefddeaad5b266d3e3305fe77ce753d0efed0eb549c963608d43cd8c6ef81739b19567ef9ba84c9709b0c
|
7
|
+
data.tar.gz: 3fe0863f25ffa3ae9b577d9e3da51bf762ac32eea0edd2782eb6c3e0bcda1d3bf46ddb87552fe98c8cd0f7d60d52c0d7853006e8e014a9b62f1b529ff49852ce
|
@@ -51,16 +51,21 @@ module ArTranslate
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
def generate_column_type_checker(column)
|
55
|
+
lambda do
|
56
|
+
column_info = self.class.columns_hash[column]
|
57
|
+
fail Error, "Invalid column #{column}" if column_info.nil?
|
58
|
+
fail Error, "Column type for #{column} is not hstore" unless column_info.type == :hstore
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
54
62
|
def model_method(name, &block)
|
55
63
|
method_name = "#{prefix}_#{name}"
|
56
|
-
|
64
|
+
check_column_type = generate_column_type_checker(column)
|
57
65
|
|
58
66
|
model.instance_eval do
|
59
67
|
define_method(method_name) do |*args|
|
60
|
-
|
61
|
-
fail Error, "Invalid column #{c_column}" if column_info.nil?
|
62
|
-
fail Error, "Column type for #{c_column} is not hstore" unless column_info.type == :hstore
|
63
|
-
|
68
|
+
instance_exec(&check_column_type)
|
64
69
|
instance_exec(*args, &block)
|
65
70
|
end
|
66
71
|
end
|
data/lib/ar_translate/version.rb
CHANGED