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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/act_as_attribute.rb +11 -5
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3127a642ffd8133126e2832ff3677f01eaf48661
4
- data.tar.gz: bdf878db77f47a22223bc997e7e420ee4221e7e3
3
+ metadata.gz: 38130a773a987cc2dcaf4e06dc1842dd9d7ab07c
4
+ data.tar.gz: 69a26dbff5249f2fb69db41ce2f9e23da3eadc89
5
5
  SHA512:
6
- metadata.gz: 342b1800bac559021946fbf99828c6f9270e7dfcf3e2c45e3618243f67f8387a03255cfc488e0208a059290f3ce9eedcf13e609467798c1eb10adf9f6e59f128
7
- data.tar.gz: 2557ff11842bf8b27b33857b73169146a1bfcc1caeebde65cf9873d75ced82b7ec77f925e28857b3f8854d84e24b2c0073478fbdffa7ddd1918cc5d2c868b618
6
+ metadata.gz: 3eee02ca499f9ebcff5bfb0cfd9bbdc037976bc6e5642913ad7de6a6cc1e101a7a491cda76acd3b6ab9bf80cbf78d1c0862e9c65792cf3987754963c39921e74
7
+ data.tar.gz: 620d90c29fec84715fcf1b616f1ef6d42800516dff098e3adf107fb8ad201bb31823e8e4a66dbb06f58eb6ff15b265d229d7079831b09651f7948f91f3700f70
@@ -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
- "method not defined"
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.update_attributes(model_attr_as_value.to_sym => value)
51
+ new_association.send("#{model_attr_as_value.to_s}=", value)
52
+ new_association.save
50
53
  else
51
- available_objects << model_name.to_s.classify.constantize.create(model_attr_as_key.to_sym => attr, model_attr_as_value.to_sym => value)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: act_as_attribute
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Annu Yadav