Я пытаюсь написать собственный DSL для манипулирования файлами, просто ради обучения.
Моя цель - сделать его понятным и легким для кодирования.
Вот 3 варианта добавления строки в database.yml:
1. append("windows").to("database.yml")
2. append(string: "windows").to(file: "database.yml")
3. append_string("windows").to_file("database.yml")
4. append_string "windows", to_file: "database.yml"
5. append string: "windows", to_file: "database.yml"
Я немного растерялся во всех этих альтернативах.
Может ли кто-нибудь с опытом работы в DSL дать мне несколько советов и объяснить, какие плюсы и минусы есть у каждого?
Все читают одно и то же, но я хочу знать, какой из них следует передовой практике для СУХОГО и хорошего стандарта кодирования.
РЕДАКТИРОВАТЬ: Я думаю, что было бы хорошо, если бы я мог указать некоторые дополнительные параметры, например.
append(string: "windows").to(file: "database.yml", :force => true)
Итак, учитывая это, я думаю, что я должен использовать вызовы методов. Потому что, если я использую альтернативы 4-5, тогда, когда я укажу: force => true, я не могу знать, для строки это или для файла.