class Chef::ChefFS::Parallelizer::FlattenEnumerable
Attributes
enum[R]
levels[R]
Public Class Methods
new(enum, levels = nil)
click to toggle source
# File lib/chef/chef_fs/parallelizer/flatten_enumerable.rb, line 7 def initialize(enum, levels = nil) @enum = enum @levels = levels end
Public Instance Methods
each(&block)
click to toggle source
# File lib/chef/chef_fs/parallelizer/flatten_enumerable.rb, line 15 def each(&block) enum.each do |value| flatten(value, levels, &block) end end
Private Instance Methods
flatten(value, levels) { |value| ... }
click to toggle source
# File lib/chef/chef_fs/parallelizer/flatten_enumerable.rb, line 23 def flatten(value, levels, &block) if levels != 0 && value.respond_to?(:each) && !value.is_a?(String) value.each do |child| flatten(child, levels.nil? ? levels : levels - 1, &block) end else yield(value) end end