Skip to content

Commit aa4cf43

Browse files
committed
Namespace Rails eval server generator
1 parent 72a1b44 commit aa4cf43

4 files changed

Lines changed: 43 additions & 38 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# frozen_string_literal: true
2+
3+
require "rails/generators"
4+
5+
module Braintrust
6+
module Contrib
7+
module Rails
8+
module Generators
9+
class EvalServerGenerator < ::Rails::Generators::Base
10+
namespace "braintrust:eval_server"
11+
source_root File.expand_path("templates", __dir__)
12+
13+
def create_initializer
14+
@evaluators = discovered_evaluators
15+
template "braintrust_server.rb.tt", "config/initializers/braintrust_server.rb"
16+
end
17+
18+
private
19+
20+
def discovered_evaluators
21+
evaluator_roots.flat_map do |root|
22+
Dir[File.join(destination_root, root, "**/*.rb")].sort.map do |file|
23+
relative_path = file.delete_prefix("#{File.join(destination_root, root)}/").sub(/\.rb\z/, "")
24+
{
25+
class_name: relative_path.split("/").map(&:camelize).join("::"),
26+
slug: relative_path.tr("/", "-").tr("_", "-")
27+
}
28+
end
29+
end
30+
end
31+
32+
def evaluator_roots
33+
%w[app/evaluators evaluators].select do |root|
34+
Dir.exist?(File.join(destination_root, root))
35+
end
36+
end
37+
end
38+
end
39+
end
40+
end
41+
end

lib/generators/braintrust/eval_server/templates/braintrust_server.rb.tt renamed to lib/generators/braintrust/contrib/rails/eval_server/templates/braintrust_server.rb.tt

File renamed without changes.

lib/generators/braintrust/eval_server/eval_server_generator.rb

Lines changed: 0 additions & 36 deletions
This file was deleted.

test/braintrust/contrib/rails/eval_server_generator_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
if RAILS_SERVER_AVAILABLE
66
require "rails/generators/test_case"
7-
require "generators/braintrust/eval_server/eval_server_generator"
7+
require "generators/braintrust/contrib/rails/eval_server/eval_server_generator"
88

99
module Braintrust
1010
module Contrib
1111
module Rails
1212
class EvalServerGeneratorTest < ::Rails::Generators::TestCase
13-
tests ::Braintrust::Generators::EvalServerGenerator
13+
tests ::Braintrust::Contrib::Rails::Generators::EvalServerGenerator
1414
destination File.expand_path("../../../../tmp/eval_server_generator", __dir__)
1515
setup :prepare_destination
1616

0 commit comments

Comments
 (0)