Sha256: f5b96d8fefdeccd62fb84e9a79edcbcf25c46461194c5d300c505c76a8562d0a

Contents?: true

Size: 697 Bytes

Versions: 2

Compression:

Stored size: 697 Bytes

Contents

# frozen_string_literal: true

module Refinements
  module Arrays
    refine Array do
      def compress
        compact.reject(&:empty?)
      end

      def compress!
        replace compress
      end

      def excluding *elements
        self - elements.flatten
      end

      def including *elements
        self + elements.flatten
      end

      def intersperse *elements
        product([elements]).tap(&:pop).flatten.push last
      end

      def mean
        size.zero? ? 0 : sum(0) / size
      end

      def pad value, max: size
        dup.fill value, size..(max - 1)
      end

      def ring &block
        [last, *self, first].each_cons 3, &block
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
refinements-8.0.1 lib/refinements/arrays.rb
refinements-8.0.0 lib/refinements/arrays.rb