class RuboCop::Cop::Salsify::RspecDocString
Check that doc strings for example groups and examples use either single-quoted or double-quoted strings based on the enforced style.
@example
# When EnforcedStyle is double_quotes # Good it "does something" do ... end # When EnforcedStyle is single_quotes # Good it 'does something' do ... end
Constants
- DOCUMENTED_METHODS
- DOUBLE_QUOTE_MSG
- SINGLE_QUOTE_MSG
Public Instance Methods
Source
# File lib/rubocop/cop/salsify/rspec_doc_string.rb, line 77 def on_send(node) _receiver, _method_name, *args = *node return unless documented_method?(node) && args.first&.str_type? check_quotes(args.first) end
Private Instance Methods
Source
# File lib/rubocop/cop/salsify/rspec_doc_string.rb, line 86 def check_quotes(doc_node) return unless wrong_quotes?(doc_node) add_offense(doc_node, message: style == :single_quotes ? SINGLE_QUOTE_MSG : DOUBLE_QUOTE_MSG) do |corrector| StringLiteralCorrector.correct(corrector, doc_node, style) end end
Source
# File lib/rubocop/cop/salsify/rspec_doc_string.rb, line 94 def wrong_quotes?(node) src = node.source return false if src.start_with?('%', '?') if style == :single_quotes src !~ /^'/ && !needs_escaping?(node.str_content) else src !~ /^" | \\ | \#/x end end