class RuboCop::Cop::Utils::FormatString
Parses {Kernel#sprintf} format strings.
def format_sequences
def format_sequences @format_sequences ||= parse end
def initialize(string)
def initialize(string) @source = string end
def max_digit_dollar_num
def max_digit_dollar_num format_sequences.map(&:max_digit_dollar_num).max end
def mixed_formats?
def mixed_formats? formats = format_sequences.reject(&:percent?).map do |seq| if seq.name :named elsif seq.max_digit_dollar_num :numbered else :unnumbered end end formats.uniq.size > 1 end
def named_interpolation?
def named_interpolation? format_sequences.any?(&:name) end
def parse
def parse matches = [] @source.scan(SEQUENCE) { matches << FormatSequence.new(Regexp.last_match) } matches end
def valid?
def valid? !mixed_formats? end