Sha256: 7ee9c33d3739c0cdc16fe542eb14431f774d1043c28d400b0beade79919edd94

Contents?: true

Size: 745 Bytes

Versions: 10

Compression:

Stored size: 745 Bytes

Contents

module Snibbets
  class ::Array
    def blocks
      select { |el| el =~ /^<block\d+>$/ }.count
    end

    def notes
      select { |el| el !~ /^<block\d+>$/ && el !~ /^```/ && !el.strip.empty? }.count
    end

    def strip_empty
      remove_leading_empty_elements.remove_trailing_empty_elements
    end

    def strip_empty!
      replace strip_empty
    end

    def remove_leading_empty_elements
      output = []

      in_leader = true
      each do |line|
        if (line.strip.empty?) && in_leader
          next
        else
          in_leader = false
          output << line
        end
      end

      output
    end

    def remove_trailing_empty_elements
      reverse.remove_leading_empty_elements.reverse
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
snibbets-2.0.40 lib/snibbets/array.rb
snibbets-2.0.39 lib/snibbets/array.rb
snibbets-2.0.38 lib/snibbets/array.rb
snibbets-2.0.37 lib/snibbets/array.rb
snibbets-2.0.36 lib/snibbets/array.rb
snibbets-2.0.35 lib/snibbets/array.rb
snibbets-2.0.34 lib/snibbets/array.rb
snibbets-2.0.33 lib/snibbets/array.rb
snibbets-2.0.32 lib/snibbets/array.rb
snibbets-2.0.31 lib/snibbets/array.rb