Class: Rubocop::Cop::Style::SymbolName
- Defined in:
- lib/rubocop/cop/style/symbol_name.rb
Overview
This cop checks whether symbol names are snake_case. There's also an option to accept CamelCase symbol names as well. There's also an option to accept symbol names with dots as well.
Constant Summary collapse
- MSG =
'Use snake_case for symbols.'
- SNAKE_CASE =
/^[\da-z_]+[!?=]?$/
- SNAKE_CASE_WITH_DOTS =
/^[\da-z_\.]+[!?=]?$/
- CAMEL_CASE =
/^[A-Z][A-Za-z\d]*$/
Constants inherited from Cop
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offences, #processed_source
Instance Method Summary collapse
Methods inherited from Cop
#add_offence, all, #autocorrect?, #convention, #cop_config, cop_name, #cop_name, cop_type, #debug?, #ignore_node, inherited, #initialize, lint?, #message, non_rails, rails?, style?, #support_autocorrect?, #warning
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#allow_camel_case? ⇒ Boolean
15 16 17 |
# File 'lib/rubocop/cop/style/symbol_name.rb', line 15 def allow_camel_case? cop_config['AllowCamelCase'] end |
#allow_dots? ⇒ Boolean
19 20 21 |
# File 'lib/rubocop/cop/style/symbol_name.rb', line 19 def allow_dots? cop_config['AllowDots'] end |
#on_send(node) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/rubocop/cop/style/symbol_name.rb', line 23 def on_send(node) receiver, method_name, *args = *node # Arguments to Module#private_constant are symbols referring to # existing constants, so they will start with an upper case letter. # We ignore these symbols. if receiver.nil? && method_name == :private_constant args.each { |a| ignore_node(a) } end end |
#on_sym(node) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/rubocop/cop/style/symbol_name.rb', line 33 def on_sym(node) return if ignored_node?(node) sym_name = node.to_a[0] return unless sym_name =~ /^[a-zA-Z]/ return if sym_name =~ SNAKE_CASE return if allow_camel_case? && sym_name =~ CAMEL_CASE return if allow_dots? && sym_name =~ SNAKE_CASE_WITH_DOTS convention(node, :expression) end |