Sha256: e0e76f2fc36e34d67b49c56a87359a6f50a5b774ea304d9baa1b56720184315a
Contents?: true
Size: 985 Bytes
Versions: 4
Compression:
Stored size: 985 Bytes
Contents
class ActiveScaffold::DataStructures::Actions include Enumerable def initialize(*args) @set = [] add(*args) end def exclude(*args) args.collect!(&:to_sym) # symbolize the args @set.reject! { |m| args.include? m } # reject all actions specified end def add(*args) args.each { |arg| @set << arg.to_sym unless @set.include? arg.to_sym } end alias << add def each(&block) @set.each(&block) end def include?(val) val.is_a?(Symbol) ? super : @set.any? { |item| item.to_s == val.to_s } 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. def swap(one, two) if include? one exclude one add two else exclude two add one end end protected # called during clone or dup. makes the clone/dup deeper. def initialize_copy(from) @set = from.instance_variable_get(:@set).clone end end
Version data entries
4 entries across 4 versions & 1 rubygems