class RspecDatabaseHelper::ClassMethods::DatabaseDSLTranslator
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rspec_database_helper.rb, line 12 def on_send(node) _, method_name, *args = node.children factory_attrs = args.map { |e| e.loc.expression.source }.join(', ') factory_class = 'FactoryGirl' if defined?(FactoryGirl) factory_class = 'FactoryBot' if defined?(FactoryBot) case method_name when /list!$/ replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/_list!$/,'')}) { #{factory_class}.create_list(#{factory_attrs}) }") when /list$/ replace(node.loc.expression, "let(:#{method_name.to_s.sub(/_list$/,'')}) { #{factory_class}.create_list(#{factory_attrs}) }") when /!$/ replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/!$/,'')}) { #{factory_class}.create(#{factory_attrs}) }") else replace(node.loc.expression, "let(:#{method_name}) { #{factory_class}.create(#{factory_attrs}) }") end end