Могут ли шаблоны Thor быть бесконечно вложенными? - PullRequest
0 голосов
/ 03 апреля 2020

Я создаю генератор шаблонов для генераторов шаблонов.

В частности, я бы хотел go три уровня глубоко в создании шаблонов. Давайте назовем его «Генератор шаблонов уровня 3».

Таким образом, я могу создать «Генератор шаблонов уровня 2» для своих пользователей на основе определенных им флагов функций. И затем они могут изменить его так, как они хотят, чтобы они могли генерировать свой собственный "Уровень генератора шаблонов 1".

Вот как это делает Rails для двух уровней (Генератор шаблонов уровня 2):

edit.html.erb.tt

<div>
  <div>
    <h1>Edit <%= singular_table_name.titleize %></h1>
    <%%= link_to "Cancel", @<%= singular_table_name %>, class: "button" %>
  </div>
  <div>
    <%%= render "form", <%= singular_table_name %>: @<%= singular_table_name %> %>
  </div>
</div>

Вот что я хочу сделать (Уровень Генератора шаблонов 3):

edit.html.erb.tt.tt ?

<%= if feature_flags.include?("edit") %>
  <div>
    <div>
      <h1>Edit <%%= singular_table_name.titleize %></h1>
      <%%%= link_to "Cancel", @<%%= singular_table_name %>, class: "button" %>
    </div>
    <div>
      <%%%= render "form", <%%= singular_table_name %>: @<%%= singular_table_name %> %>
    </div>
  </div>
<% end %>

<%%%= %> превратится в <%%= %>, <%%= %> превратится в <%= %>, а <%= %> вернет значение.

...