Sha256: fe2e62267deacea523482dbe4da759c9648d84e4a8f9469ddbe6b91e16dbe5f4

Contents?: true

Size: 748 Bytes

Versions: 248

Compression:

Stored size: 748 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
            yield(value)
          end
        end
      end
    end
  end
end

Version data entries

248 entries across 248 versions & 1 rubygems

Version Path
chef-16.5.64 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.5.64-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.14.0 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.14.0-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.41 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.41-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.38 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.38-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.35 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.4.35-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.3.45 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.3.45-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.13.8 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.13.8-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.3.38 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.3.38-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.2.73 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-16.2.73-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.12.22 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.12.22-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb