Sha256: dfc4b00af414166b2397b5d72463ad61bdce8fea8025c2eb2b5d993ea4e51cc5

Contents?: true

Size: 751 Bytes

Versions: 72

Compression:

Stored size: 751 Bytes

Contents

class Chef
  module ChefFS
    class Parallelizer
      class FlattenEnumerable
        include Enumerable

        def initialize(enum, levels = nil)
          @enum = enum
          @levels = levels
        end

        attr_reader :enum
        attr_reader :levels

        def each(&block)
          enum.each do |value|
            flatten(value, levels, &block)
          end
        end

        private

        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
            block.call(value)
          end
        end
      end
    end
  end
end

Version data entries

72 entries across 72 versions & 1 rubygems

Version Path
chef-12.6.0 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.6.0-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.5.1-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.5.1 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.3-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.3 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.2-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.2 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.5.0.alpha.1 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.1-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.1 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0.rc.2 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0.rc.2-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0.rc.0 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.4.0.rc.0-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-11.18.12-x86-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-11.18.12 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-12.3.0-x86-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb