8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/no_fly_list/taggable_record/mutation.rb', line 8
def define_mutation_methods(setup)
context = setup.context
taggable_klass = setup.taggable_klass
taggable_klass.class_eval do
define_method "add_#{context}" do |*tags|
send("#{context}_list").add(*tags)
end
alias_method "add_#{context}=", "add_#{context}"
define_method "remove_#{context}" do |*tags|
send("#{context}_list").remove(*tags)
end
alias_method "remove_#{context}=", "remove_#{context}"
define_method "set_#{context}" do |*tags|
send("#{context}_list=", tags)
end
alias_method "set_#{context}=", "set_#{context}"
define_method "clear_#{context}" do
send("#{context}_list").clear
end
define_method "clear_#{context}!" do
send("#{context}_list").clear!
end
end
end
|