В соответствии с шаблонами приложений Rails так можно записать код ruby в файл:
file 'path/to/my_file.rb', <<-CODE
class Object
def not_nil?
!nil?
end
def not_blank?
!blank?
end
end
CODE
Однако, когда я пытаюсь добавить код, содержащий интерполяцию строк между <<-CODE
и CODE
, при первом появлении происходит сбой.
Мой file
Звоните:
file 'lib/person.rb', <<-CODE
# frozen_string_literal: true
class Person
def initialize(first_name, last_name)
@full_name = "#{first_name.capitalize} #{last_name.capitalize}#"
end
end
CODE
Сообщение об ошибке:
template.rb: 50: in apply
: неопределенная локальная переменная или метод first_name
для Rails :: Generators :: AppGenerator: 0x00005557a8d85090 (NameError)
Насколько я понимаю, генератор шаблонов пытается выполнить интерполированный код.
Я пытался просто избежать двойных кавычек "
, например:
file 'lib/person.rb', <<-CODE
# frozen_string_literal: true
class Person
def initialize(first_name, last_name)
@full_name = \"#{first_name.capitalize} #{last_name.capitalize}#\"
end
end
CODE
но это не помогло, что привело к точно такой же ошибке.
Как мне подойти к этому?