Class: Rubocop::Cop::Style::NumericLiterals
- Inherits:
-
Cop
- Object
- Cop
- Rubocop::Cop::Style::NumericLiterals
show all
- Defined in:
- lib/rubocop/cop/style/numeric_literals.rb
Overview
This cop checks for big numeric literals without _ between groups
of digits in them.
Constant Summary
collapse
- MSG =
'Separate every 3 digits in the integer portion of a number' \
'with underscores(_).'
Constants inherited
from Cop
Cop::OPERATOR_METHODS
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offences, #processed_source
Instance Method Summary
collapse
Methods inherited from Cop
#add_offence, all, #autocorrect?, #autocorrect_action, #convention, #cop_config, #cop_name, cop_name, cop_type, #debug?, #ignore_node, inherited, #initialize, lint?, #message, rails?, style?, #warning
Instance Method Details
#check(node) ⇒ Object
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 28
def check(node)
value, = *node
if enough_digits?(value)
int = integer_part(node)
if int =~ /\d{4}/ || int =~ /_\d{1,2}_/
convention(node, :expression)
end
end
end
|
#enough_digits?(number) ⇒ Boolean
16
17
18
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 16
def enough_digits?(number)
number.to_s.size >= min_digits
end
|
#integer_part(node) ⇒ Object
39
40
41
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 39
def integer_part(node)
node.loc.expression.source.split('.').first
end
|
#min_digits ⇒ Object
12
13
14
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 12
def min_digits
cop_config['MinDigits']
end
|
#on_fload(node) ⇒ Object
24
25
26
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 24
def on_fload(node)
check(node)
end
|
#on_int(node) ⇒ Object
20
21
22
|
# File 'lib/rubocop/cop/style/numeric_literals.rb', line 20
def on_int(node)
check(node)
end
|