Sha256: 5070dcb55adefc0e348cbcc74002d4b7fa7dc6ca2befc91739e77ec9e66ffdd1

Contents?: true

Size: 762 Bytes

Versions: 2

Compression:

Stored size: 762 Bytes

Contents

require_relative "../../logger"

class Customizer
  def initialize(problem)
    @problem = problem
  end

  def call(text:, custom:, type: nil)
    output = text.clone
    custom.each_pair { |oldvalue, newvalue| output.gsub!(oldvalue, newvalue) }
    
    if type.nil?
      return output 
    elsif type == "formula"
      begin
        return eval(output).to_s
      rescue SyntaxError => e
        Logger.error "Problem.name = #{@problem.name}"
        Logger.error "Customizer: Wrong formula '#{text}' or wrong values '#{output}'"
        Logger.error e.to_s
        exit 1
      end
    else
      Logger.error "Customizer: Wrong answer type (#{type})"
      exit 1
    end
  end

  def min(*args)
    args.min
  end

  def max(*args)
    args.max
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
asker-tool-2.9.0 lib/asker/ai/problem/customizer.rb
asker-tool-2.8.0 lib/asker/ai/problem/customizer.rb