Sha256: a7b379cf77085485e161d5e0392316585ec22b78ca23aa15671c8b781b3dfb55
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
# encoding: utf-8 module Rubocop module Cop module Style # Checks for uses of double quotes where single quotes would do. class StringLiterals < Cop MSG = "Prefer single-quoted strings when you don't need " + 'string interpolation or special symbols.' def on_str(node) # Constants like __FILE__ are handled as strings, # but don't respond to begin. return unless node.loc.respond_to?(:begin) return if part_of_ignored_node?(node) # regex matches IF there is a ' or there is a \\ in the string that # is not preceeded/followed by another \\ (e.g. "\\x34") but not # "\\\\" if node.loc.expression.source !~ /('|([^\\]|\A)\\([^\\]|\Z))/ && node.loc.begin.is?('"') add_offence(:convention, node.loc.expression, MSG) do_autocorrect(node) end end alias_method :on_dstr, :ignore_node alias_method :on_regexp, :ignore_node def autocorrect_action(node) @corrections << lambda do |corrector| corrector.replace(node.loc.begin, "'") corrector.replace(node.loc.end, "'") end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.10.0 | lib/rubocop/cop/style/string_literals.rb |