act_as_attribute 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/act_as_attribute.rb +11 -5
- 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: 38130a773a987cc2dcaf4e06dc1842dd9d7ab07c
|
4
|
+
data.tar.gz: 69a26dbff5249f2fb69db41ce2f9e23da3eadc89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3eee02ca499f9ebcff5bfb0cfd9bbdc037976bc6e5642913ad7de6a6cc1e101a7a491cda76acd3b6ab9bf80cbf78d1c0862e9c65792cf3987754963c39921e74
|
7
|
+
data.tar.gz: 620d90c29fec84715fcf1b616f1ef6d42800516dff098e3adf107fb8ad201bb31823e8e4a66dbb06f58eb6ff15b265d229d7079831b09651f7948f91f3700f70
|
data/lib/act_as_attribute.rb
CHANGED
@@ -33,22 +33,28 @@ module ActAsAttributes
|
|
33
33
|
deal_with_duplicate_method(attr)
|
34
34
|
end
|
35
35
|
|
36
|
-
define_method(attr) do
|
36
|
+
define_method(attr.underscore) do
|
37
37
|
available_objects = self.send(model_name)
|
38
38
|
if available_objects.map(&model_attr_as_key.to_sym).include? attr
|
39
39
|
available_objects.send("find_by_#{model_attr_as_key}", attr).send(model_attr_as_value)
|
40
40
|
else
|
41
|
-
|
41
|
+
new_object = model_name.to_s.classify.constantize.create(model_attr_as_key.to_sym => attr)
|
42
|
+
available_objects << new_object
|
43
|
+
new_object.send(model_attr_as_value)
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
define_method("#{attr}=") do |value|
|
47
|
+
define_method("#{attr.underscore}=") do |value|
|
46
48
|
available_objects = self.send(model_name)
|
47
49
|
if available_objects.map(&model_attr_as_key.to_sym).include? attr
|
48
50
|
new_association= available_objects.send("find_by_#{model_attr_as_key}", attr)
|
49
|
-
new_association.
|
51
|
+
new_association.send("#{model_attr_as_value.to_s}=", value)
|
52
|
+
new_association.save
|
50
53
|
else
|
51
|
-
|
54
|
+
new_object = model_name.to_s.classify.constantize.create(model_attr_as_key.to_sym => attr)
|
55
|
+
new_object.send("#{model_attr_as_value}=", value)
|
56
|
+
new_object.save
|
57
|
+
available_objects << new_object
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|