mirror of
				https://gitea.invidious.io/iv-org/shard-ameba.git
				synced 2024-08-15 00:53:29 +00:00 
			
		
		
		
	Minor refactors in Style/LargeNumbers rule
				
					
				
			This commit is contained in:
		
							parent
							
								
									134963ece7
								
							
						
					
					
						commit
						b79f3e6e07
					
				
					 1 changed files with 7 additions and 6 deletions
				
			
		| 
						 | 
					@ -39,11 +39,12 @@ module Ameba::Rule::Style
 | 
				
			||||||
      Tokenizer.new(source).run do |token|
 | 
					      Tokenizer.new(source).run do |token|
 | 
				
			||||||
        next unless token.type.number? && decimal?(token.raw)
 | 
					        next unless token.type.number? && decimal?(token.raw)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        parsed = parse_number token.raw
 | 
					        parsed = parse_number(token.raw)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if allowed?(*parsed) && (expected = underscored *parsed) != token.raw
 | 
					        if allowed?(*parsed) && (expected = underscored *parsed) != token.raw
 | 
				
			||||||
          location = token.location
 | 
					          location = token.location
 | 
				
			||||||
          end_location = location.adjust(column_number: token.raw.size - 1)
 | 
					          end_location = location.adjust(column_number: token.raw.size - 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          issue_for location, end_location, MSG % expected do |corrector|
 | 
					          issue_for location, end_location, MSG % expected do |corrector|
 | 
				
			||||||
            corrector.replace(location, end_location, expected)
 | 
					            corrector.replace(location, end_location, expected)
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
| 
						 | 
					@ -58,21 +59,21 @@ module Ameba::Rule::Style
 | 
				
			||||||
    private def allowed?(_sign, value, fraction, _suffix)
 | 
					    private def allowed?(_sign, value, fraction, _suffix)
 | 
				
			||||||
      return true if fraction && fraction.size > 3
 | 
					      return true if fraction && fraction.size > 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      digits = value.chars.select &.to_s.=~ /[0-9]/
 | 
					      digits = value.chars.select(&.number?)
 | 
				
			||||||
      digits.size >= int_min_digits
 | 
					      digits.size >= int_min_digits
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private def underscored(sign, value, fraction, suffix)
 | 
					    private def underscored(sign, value, fraction, suffix)
 | 
				
			||||||
      value = slice_digits(value.reverse) { |slice| slice }.reverse
 | 
					      value = slice_digits(value.reverse).reverse
 | 
				
			||||||
      fraction = "." + slice_digits(fraction) { |slice| slice } if fraction
 | 
					      fraction = "." + slice_digits(fraction) if fraction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      "#{sign}#{value}#{fraction}#{suffix}"
 | 
					      "#{sign}#{value}#{fraction}#{suffix}"
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private def slice_digits(value, by = 3)
 | 
					    private def slice_digits(value, by = 3)
 | 
				
			||||||
      ([] of String).tap do |slices|
 | 
					      %w[].tap do |slices|
 | 
				
			||||||
        value.chars.reject(&.== '_').each_slice(by) do |slice|
 | 
					        value.chars.reject(&.== '_').each_slice(by) do |slice|
 | 
				
			||||||
          slices << (yield slice).join
 | 
					          slices << slice.join
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end.join('_')
 | 
					      end.join('_')
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue