# File lib/active_scaffold/data_structures/actions.rb, line 14 def add(*args) args.each { |arg| @set << arg.to_sym unless @set.include? arg.to_sym } end
# File lib/active_scaffold/data_structures/actions.rb, line 19 def each @set.each {|item| yield item} end
# File lib/active_scaffold/data_structures/actions.rb, line 9 def exclude(*args) args.collect! { |a| a.to_sym } # symbolize the args @set.reject! { |m| args.include? m } # reject all actions specified end
# File lib/active_scaffold/data_structures/actions.rb, line 23 def include?(val) super val.to_sym end
swaps one element in the list with the other. accepts arguments in any order. it just figures out which one is in the list and which one is not.
# File lib/active_scaffold/data_structures/actions.rb, line 29 def swap(one, two) if include? one exclude one add two else exclude two add one end end
called during clone or dup. makes the clone/dup deeper.
# File lib/active_scaffold/data_structures/actions.rb, line 42 def initialize_copy(from) @set = from.instance_variable_get('@set').clone end
# File lib/active_scaffold/data_structures/actions.rb, line 4 def initialize(*args) @set = [] self.add *args end