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