class RuboCop::Cop::RSpec::FactoryBot::CreateList::CreateListCorrector

:nodoc:

def build_arguments(node, count)

def build_arguments(node, count)
  factory, *options = *node.send_node.arguments
  arguments = ":#{factory.value}, #{count}"
  options = build_options_string(options)
  arguments += ", #{options}" unless options.empty?
  arguments
end

def call(corrector)

def call(corrector)
  replacement = if node.body.block_type?
                  call_with_block_replacement(node)
                else
                  call_replacement(node)
                end
  corrector.replace(node, replacement)
end

def call_replacement(node)

def call_replacement(node)
  block = node.body
  factory, *options = *block.arguments
  arguments = "#{factory.source}, #{node.receiver.source}"
  options = build_options_string(options)
  arguments += ", #{options}" unless options.empty?
  replacement = format_receiver(block.receiver)
  replacement += format_method_call(block, 'create_list', arguments)
  replacement
end

def call_with_block_replacement(node)

def call_with_block_replacement(node)
  block = node.body
  arguments = build_arguments(block, node.receiver.source)
  replacement = format_receiver(block.receiver)
  replacement += format_method_call(block, 'create_list', arguments)
  replacement += format_block(block)
  replacement
end

def format_block(node)

def format_block(node)
  if node.body.begin_type?
    format_multiline_block(node)
  else
    format_singeline_block(node)
  end
end

def format_multiline_block(node)

def format_multiline_block(node)
  indent = ' ' * node.body.loc.column
  indent_end = ' ' * node.parent.loc.column
  " do #{node.arguments.source}\n" \
  "#{indent}#{node.body.source}\n" \
  "#{indent_end}end"
end

def format_singeline_block(node)

def format_singeline_block(node)
  " { #{node.arguments.source} #{node.body.source} }"
end

def initialize(node)

def initialize(node)
  @node = node.parent
end