require 'pry' require 'pry-factorybot' module PryFactoryBot # TODO FactoryBot::Internal::DEFAULT_STRATEGIESでとれるようになるかも? DEFAULT_STRATEGIES_NAMES = [:build, :create, :attributes_for, :build_stubbed, :null ] DEFAULT_STRATEGIES_NAMES.each do |strategy_name| class_eval <<-EOS class FactoryBot#{strategy_name.capitalize}Command < ::Pry::ClassCommand match "#{strategy_name}" group "FactorBot" description "FactorBot.#{strategy_name}" banner <<-BANNER Usage: #{strategy_name} FactorBot.create. BANNER def process(name, *traits_and_overrides, &block) ::FactoryBot.#{strategy_name}(name, *traits_and_overrides, &block) rescue => e puts e.message end end EOS end DEFAULT_STRATEGIES_NAMES.each do |strategy_name| eval "Pry::Commands.add_command(PryFactoryBot::FactoryBot#{strategy_name.capitalize}Command)" end end