stupidedi: Incompatibility with factory_bot gem
If my rails project includes both stupidedi and factory_bot then rails console and rspec don’t work correctly.
Trying to run a rails console leads to:
/Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:6:in `undef_method': undefined method `blank?' for class `FactoryBot::DefinitionProxy' (NameError)
Did you mean? blank?
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:6:in `block in <class:DefinitionProxy>'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:5:in `each'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:5:in `<class:DefinitionProxy>'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:2:in `<module:FactoryBot>'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:1:in `<top (required)>'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `block in require'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:259:in `load_dependency'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot.rb:35:in `<top (required)>'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:81:in `require'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:81:in `block (2 levels) in require'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:76:in `each'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:76:in `block in require'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:65:in `each'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler/runtime.rb:65:in `require'
from /Users/jeremy/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/bundler.rb:114:in `require'
from /Users/jeremy/projects/tip_portal/config/application.rb:7:in `<top (required)>'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:156:in `require'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:156:in `require_application_and_environment!'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:77:in `console'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/railties-5.0.6/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/railties-5.0.6/lib/rails/commands.rb:18:in `<top (required)>'
from bin/rails:9:in `require'
from bin/rails:9:in `<main>'
Trying to run rspec leads to:
NameError:
undefined method `present?' for class `FactoryBot::DefinitionProxy'
Did you mean? present?
presence
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:6:in `undef_method'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:6:in `block in <class:DefinitionProxy>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:5:in `each'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:5:in `<class:DefinitionProxy>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:2:in `<module:FactoryBot>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot/definition_proxy.rb:1:in `<top (required)>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `block in require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:259:in `load_dependency'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/factory_bot-4.8.2/lib/factory_bot.rb:35:in `<top (required)>'
# ./config/application.rb:7:in `<top (required)>'
# ./config/environment.rb:2:in `require_relative'
# ./config/environment.rb:2:in `<top (required)>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `block in require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:259:in `load_dependency'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# ./spec/rails_helper.rb:3:in `<top (required)>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `block in require'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:259:in `load_dependency'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:293:in `require'
# ./spec/whenever/get_orders_on_day_spec.rb:1:in `<top (required)>'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:287:in `load'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:287:in `block in load'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:259:in `load_dependency'
# /Users/jeremy/.rvm/gems/ruby-2.3.1@tip_portal/gems/activesupport-5.0.6/lib/active_support/dependencies.rb:287:in `load'
Removing either gem stops the error. Any idea why these two gems are incompatible?
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 18 (9 by maintainers)
I think I have a high enough confidence that it’s related to the ruby version, since I can’t even replicate it on the same laptop when running the newer ruby version. If you want to dig further for your own satisfaction, that’s fine. But I will just use a workaround of a fork of the gem without the try and blank refinements. I’m recommending internally that our project upgrades to a newer ruby version and then we’ll be able to switch back to the mainline version of stupidedi.