Sha256: fe4c9a73fdee9b671ab4b56891632dcc33457018f6675d6c2154d6c4a25c62df

Contents?: true

Size: 956 Bytes

Versions: 222

Compression:

Stored size: 956 Bytes

Contents

class ActiveScaffold::DataStructures::Actions
  include Enumerable

  def initialize(*args)
    @set = []
    self.add *args
  end

  def exclude(*args)
    args.collect! { |a| a.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_method :<<, :add

  def each
    @set.each {|item| yield item}
  end

  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.
  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

222 entries across 222 versions & 9 rubygems

Version Path
active_scaffold_vho-4.0.0 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.14 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.13 lib/active_scaffold/data_structures/actions.rb
active_scaffold-sequel-0.8.0 lib/active_scaffold/data_structures/actions.rb
active_scaffold-sequel-0.7.1 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.12 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.11 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.10 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.9 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.8 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.7 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.6 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.5 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.4 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.3 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.2 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.1 lib/active_scaffold/data_structures/actions.rb
active_scaffold-sequel-0.7.0 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.2.0 lib/active_scaffold/data_structures/actions.rb
active_scaffold_vho-3.0.31 lib/active_scaffold/data_structures/actions.rb