Sha256: 801ceefbc8150413d9eeaf682265f744879c34b23aa8f97848f9ab4bb4b82e7e

Contents?: true

Size: 912 Bytes

Versions: 1

Compression:

Stored size: 912 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

  def bin2dec(value)
    value.to_s.to_i(2)
  end

  def dec2bin(value)
    value.to_i.to_s(2)
  end

  def dec2hex(value)
    value.to_i.to_s(16)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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