Sha256: 6744e968d1f7d108d50065257d4e1302b11d95cc3fd566f9814b0fe06203f58e

Contents?: true

Size: 783 Bytes

Versions: 32

Compression:

Stored size: 783 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

32 entries across 32 versions & 1 rubygems

Version Path
chef-14.13.11-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.0.300-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.0.298-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-15.0.293-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.12.9-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.12.3-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.12.14-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.11.21-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.10.9-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.9.13-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.8.12-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.7.17-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.12.3-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.6.47-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.11.3-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.5.33-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.10.4-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-14.3.37-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.10.0-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb
chef-13.9.4-universal-mingw32 lib/chef/chef_fs/parallelizer/flatten_enumerable.rb