Class: ActiveScaffold::DataStructures::Actions
- Includes:
- Enumerable
- Defined in:
- lib/active_scaffold/data_structures/actions.rb
Instance Method Summary collapse
- #add(*args) ⇒ Object (also: #<<)
- #each ⇒ Object
- #exclude(*args) ⇒ Object
- #include?(val) ⇒ Boolean
-
#initialize(*args) ⇒ Actions
constructor
A new instance of Actions.
-
#swap(one, two) ⇒ Object
swaps one element in the list with the other.
Constructor Details
#initialize(*args) ⇒ Actions
Returns a new instance of Actions.
4 5 6 7 |
# File 'lib/active_scaffold/data_structures/actions.rb', line 4 def initialize(*args) @set = [] add(*args) end |
Instance Method Details
#add(*args) ⇒ Object Also known as: <<
[View source]
14 15 16 |
# 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 |
#each ⇒ Object
[View source]
19 20 21 |
# File 'lib/active_scaffold/data_structures/actions.rb', line 19 def each @set.each { |item| yield item } end |
#exclude(*args) ⇒ Object
[View source]
9 10 11 12 |
# File 'lib/active_scaffold/data_structures/actions.rb', line 9 def exclude(*args) args.collect!(&:to_sym) # symbolize the args @set.reject! { |m| args.include? m } # reject all actions specified end |
#include?(val) ⇒ Boolean
23 24 25 |
# File 'lib/active_scaffold/data_structures/actions.rb', line 23 def include?(val) val.is_a?(Symbol) ? super : @set.any? { |item| item.to_s == val.to_s } end |
#swap(one, two) ⇒ Object
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.
29 30 31 32 33 34 35 36 37 |
# 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 |