Class: Testgenai::Generator::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/testgenai/generator/base.rb

Direct Known Subclasses

MinitestGenerator, RspecGenerator

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Base

Returns a new instance of Base.



6
7
8
9
# File 'lib/testgenai/generator/base.rb', line 6

def initialize(config)
  @config = config
  configure_llm
end

Instance Method Details

#generate(method_info, context, feedback: nil) ⇒ Object



11
12
13
14
15
# File 'lib/testgenai/generator/base.rb', line 11

def generate(method_info, context, feedback: nil)
  prompt = build_prompt(method_info, context, feedback: feedback)
  response = call_llm(prompt)
  CodeExtractor.extract(response)
end

#injection_fallback_path_for(method_info) ⇒ Object



21
22
23
24
25
# File 'lib/testgenai/generator/base.rb', line 21

def injection_fallback_path_for(method_info)
  primary = output_path_for(method_info)
  method_part = method_info[:method].to_s.gsub(/\Aself\./, "").tr(".", "_")
  primary.sub(/_(spec|test)\.rb\z/, "_#{method_part}_\\1.rb")
end

#output_path_for(method_info) ⇒ Object

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/testgenai/generator/base.rb', line 17

def output_path_for(method_info)
  raise NotImplementedError, "#{self.class} must implement #output_path_for"
end