diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index 81b7d7e2434..7c0738c04d9 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -92,6 +92,14 @@ class Plugin::Instance end end + def add_report(name, &block) + reloadable_patch do |plugin| + if plugin.enabled? + Report.add_report(name, &block) + end + end + end + def replace_flags settings = ::FlagSettings.new yield settings diff --git a/spec/components/plugin/instance_spec.rb b/spec/components/plugin/instance_spec.rb index b791a7d8f83..44456c818ae 100644 --- a/spec/components/plugin/instance_spec.rb +++ b/spec/components/plugin/instance_spec.rb @@ -116,6 +116,15 @@ describe Plugin::Instance do end end + context "#add_report" do + it "adds a report" do + plugin = Plugin::Instance.new nil, "/tmp/test.rb" + plugin.add_report("readers") {} + + expect(Report.respond_to?(:report_readers)).to eq(true) + end + end + context "activate!" do it "can activate plugins correctly" do plugin = Plugin::Instance.new