Sha256: 70f42756c0bc52ae15832545a667d2ebac68b6b4282aa4b29a5e1f9c4d190eea
Contents?: true
Size: 759 Bytes
Versions: 14
Compression:
Stored size: 759 Bytes
Contents
module Rbexy module Refinements module Array module InsertBetweenTypes refine ::Array do def insert_between_types(type1, type2, &block) map.with_index do |curr, i| prev_i = i - 1 if prev_i >= 0 && InsertBetweenTypes.one_of_each_type?([self[prev_i], curr], [type1, type2]) [block.call, curr] else [curr] end end.flatten end end def self.one_of_each_type?(items_pair, types_pair) items_pair[0].is_a?(types_pair[0]) && items_pair[1].is_a?(types_pair[1]) || items_pair[0].is_a?(types_pair[1]) && items_pair[1].is_a?(types_pair[0]) end end end end end
Version data entries
14 entries across 14 versions & 1 rubygems