has_moderated 0.0.3 → 0.0.4
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.
@@ -2,8 +2,14 @@ class Moderation < ActiveRecord::Base
|
|
2
2
|
belongs_to :moderatable, :polymorphic => true
|
3
3
|
|
4
4
|
def accept
|
5
|
+
# case: moderated destruction
|
6
|
+
if attr_name == '-' && attr_value.class == String && attr_value == "destroy"
|
7
|
+
moderatable.has_moderated_updating = true
|
8
|
+
moderatable.destroy
|
9
|
+
moderatable.has_moderated_updating = false
|
10
|
+
self.destroy
|
5
11
|
# case: moderated existance (new record)
|
6
|
-
|
12
|
+
elsif attr_name == '-'
|
7
13
|
# create the main record
|
8
14
|
rec = moderatable_type.constantize.new
|
9
15
|
loaded_val = YAML::load(attr_value)
|
@@ -25,20 +31,25 @@ class Moderation < ActiveRecord::Base
|
|
25
31
|
|
26
32
|
# all records for this associated model
|
27
33
|
assoc_records.each do |attrs|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
34
|
+
if attrs.class == Fixnum # associate to existing record
|
35
|
+
arec = m.find_by_id(attrs)
|
36
|
+
rec.send(assoc_name.to_s) << arec if arec # add the association, if the record still exists
|
37
|
+
else # create a new record
|
38
|
+
arec = m.new # new associated model
|
39
|
+
attrs.each_pair do |key, val|
|
40
|
+
arec.send(key.to_s+"=", val) unless key.to_s == 'id'
|
41
|
+
end
|
42
|
+
fk = if assoc_details.respond_to?(:foreign_key)
|
43
|
+
assoc_details.foreign_key
|
44
|
+
else # version < 3.1
|
45
|
+
assoc_details.primary_key_name
|
46
|
+
end
|
47
|
+
arec.send(fk.to_s+"=", rec.id) # set association to the newly created record
|
48
|
+
# disable moderation for associated model (if enabled)
|
49
|
+
arec.has_moderated_updating = true if arec.respond_to?("has_moderated_updating=")
|
50
|
+
arec.save
|
51
|
+
arec.has_moderated_updating = false if arec.respond_to?("has_moderated_updating=")
|
36
52
|
end
|
37
|
-
arec.send(fk.to_s+"=", rec.id) # set association to the newly created record
|
38
|
-
# disable moderation for associated model (if enabled)
|
39
|
-
arec.has_moderated_updating = true if arec.respond_to?("has_moderated_updating=")
|
40
|
-
arec.save
|
41
|
-
arec.has_moderated_updating = false if arec.respond_to?("has_moderated_updating=")
|
42
53
|
end
|
43
54
|
end
|
44
55
|
self.destroy # destroy this moderation since it has been applied
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_moderated
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jan Berdajs
|