- Notifications
You must be signed in to change notification settings - Fork 476
Open
Description
Hi friends! Thank you for your great work with this gem ✨
I am having a problem in Rails apps where Scientist::Experiment defaults to the original Default object until the custom one is called - leading to some head-scratching about why the try block is not running even when enabled? is set to true.
I'm unsure whether this is a problem with the Rails load order because of how I've arranged my files, whether the examples in the README could be a little better, or whether there's genuinely a bug here.
$ bundle exec rails console Loading development environment (Rails 5.1.6) irb(main):001:0> Scientist::Experiment.new "something" => #<Scientist::Default:0x00007fd667bbcd40 @name="something"> irb(main):002:0> LdapExperiment.new(name: "something") => #<LdapExperiment:0x00007fd667b6ee10 @name="something"> irb(main):003:0> Scientist::Experiment.new "something" => #<LdapExperiment:0x00007fd667b34968 @name="something"> I've followed the instructions in the README, which are delightful and comprehensive.
# app/experiments/ldap_experiment.rb require "scientist/experiment" class LdapExperiment include Scientist::Experiment attr_accessor :name def initialize(name:) @name = name end def enabled? # ... end def publish(result) # ... end end module Scientist::Experiment def self.new(name) LdapExperiment.new(name: name) end end# app/models/whatever.rb class Whatever include Scientist def do_something science "role lookup" do |e| e.use { do_one_thing } e.try { do_some_other_thing } end end endThis is occurring in Rails 3.2.x and Rails 5.1.x applications, with version 1.2.0 of the gem.
Metadata
Metadata
Assignees
Labels
No labels