partition

in lib/twitter_cldr/transforms/rule_set.rb [33:70]


      def partition(rules)
        [].tap do |result|
          until rules.empty?
            filter_rule = nil
            inverse_filter_rule = nil

            if is_forward_filter?(rules[0])
              filter_rule = rules[0]
              rules.shift
            end

            trans_rules = take_transforms(rules)
            conv_rules = take_conversions(rules)
            result.concat(trans_rules)

            if !rules.empty? && is_backward_filter?(rules[0])
              inverse_filter_rule = rules[0]
              rules.shift
            end

            unless conv_rules.empty?
              result << make_conversion_rule_set(
                conv_rules, filter_rule, inverse_filter_rule
              )
            end

            
            
            
            
            
            if trans_rules.empty? && conv_rules.empty?
              result << rules.delete_at(0)
            end
          end
        end
      end