Макросы: как задать режим компиляции извне?

Положим, вы хотели бы компилировать тот или иной код в зависимости от значения переменной-триггера, задающей «режим компиляции».

В Crystal это делается элементарно:
  1. Задаём переменную окружения MODE_VAR локально для процесса-компилятора
    
    MODE_VAR=1 crystal src/mutating_code.cr
    

  2. Учитываем значение этой переменной во время компиляции:
    
    {% begin %}
      {% if env("MODE_VAR") != nil %}
        puts "Do something if MODE_VAR was triggered"
      {% else %}
        puts "Do anything else if MODE_VAR environment variable is absent "
      {% end %}
    {% end %}
    

0 комментариев