Scientist::Experiment.new creates Scientist::Default instance even when it should have been overridden
- Langage dominant
- Ruby
- Étoiles
- 7.8k
- Forks
- 505
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Hi friends! Thank you for your great work with this gem :sparkles:
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"
=> #
irb(main):002:0> LdapExperiment.new(name: "something")
=> #
irb(main):003:0> Scientist::Experiment.new "something"
=> #
```
I've followed the instructions in the README, which are delightful and comprehensive.
```ruby
# 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
```
```ruby
# 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
end
```
This is occurring in Rails 3.2.x and Rails 5.1.x applications, with version 1.2.0 of the gem.
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.