rule_index_for

in lib/twitter_cldr/formatters/numbers/rbnf/rule_set.rb [202:234]


        def rule_index_for(base_value)
          if rule_index = special_rule_index_for(base_value)
            return rule_index
          end

          if is_numeric?(base_value)
            
            low = search_start_index
            high = rules.size - 1

            while low <= high
              mid = (low + high) / 2
              mid_base_value = rules[mid].base_value

              case
                when mid_base_value > base_value
                  high = mid - 1
                when mid_base_value < base_value
                  low = mid + 1
                else
                  break
              end
            end

            
            if rules[mid].base_value <= base_value
              mid
            else
              mid > 0 ? mid - 1 : mid
            end
          end
        end