Class: Chef::ResourceCollection::StepableIterator
- Inherits:
-
Object
- Object
- Chef::ResourceCollection::StepableIterator
- Defined in:
- lib/chef/resource_collection/stepable_iterator.rb
Instance Attribute Summary collapse
-
#collection ⇒ Object
Returns the value of attribute collection.
-
#position ⇒ Object
readonly
Returns the value of attribute position.
Class Method Summary collapse
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #each_index(&block) ⇒ Object
- #each_with_index(&block) ⇒ Object
-
#initialize(collection = []) ⇒ StepableIterator
constructor
A new instance of StepableIterator.
- #iterate_on(iteration_type, &block) ⇒ Object
- #pause ⇒ Object
- #paused? ⇒ Boolean
- #resume ⇒ Object
- #rewind ⇒ Object
- #size ⇒ Object
- #skip_back(skips = 1) ⇒ Object
- #skip_forward(skips = 1) ⇒ Object
- #step ⇒ Object
Constructor Details
#initialize(collection = []) ⇒ StepableIterator
Returns a new instance of StepableIterator.
29 30 31 32 33 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 29 def initialize(collection = []) @position = 0 @paused = false @collection = collection end |
Instance Attribute Details
#collection ⇒ Object
Returns the value of attribute collection.
26 27 28 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 26 def collection @collection end |
#position ⇒ Object (readonly)
Returns the value of attribute position.
27 28 29 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 27 def position @position end |
Class Method Details
.for_collection(new_collection) ⇒ Object
22 23 24 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 22 def self.for_collection(new_collection) new(new_collection) end |
Instance Method Details
#each(&block) ⇒ Object
39 40 41 42 43 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 39 def each(&block) reset_iteration(block) @iterator_type = :element iterate end |
#each_index(&block) ⇒ Object
45 46 47 48 49 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 45 def each_index(&block) reset_iteration(block) @iterator_type = :index iterate end |
#each_with_index(&block) ⇒ Object
51 52 53 54 55 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 51 def each_with_index(&block) reset_iteration(block) @iterator_type = :element_with_index iterate end |
#iterate_on(iteration_type, &block) ⇒ Object
89 90 91 92 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 89 def iterate_on(iteration_type, &block) @iterator_type = iteration_type @iterator_block = block end |
#pause ⇒ Object
61 62 63 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 61 def pause @paused = true end |
#paused? ⇒ Boolean
57 58 59 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 57 def paused? @paused end |
#resume ⇒ Object
65 66 67 68 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 65 def resume @paused = false iterate end |
#rewind ⇒ Object
70 71 72 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 70 def rewind @position = 0 end |
#size ⇒ Object
35 36 37 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 35 def size collection.size end |
#skip_back(skips = 1) ⇒ Object
74 75 76 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 74 def skip_back(skips = 1) @position -= skips end |
#skip_forward(skips = 1) ⇒ Object
78 79 80 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 78 def skip_forward(skips = 1) @position += skips end |
#step ⇒ Object
82 83 84 85 86 87 |
# File 'lib/chef/resource_collection/stepable_iterator.rb', line 82 def step return nil if @position == size call_iterator_block @position += 1 end |