Я пытаюсь написать свой собственный 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, дать мне несколько советов и объяснить, какие плюсы и минусы у каждого из них?
Все читают одинаково, но я хочу знать, какой из них следует лучшим практикам для DRY и хорошему стандарту кодирования .
РЕДАКТИРОВАТЬ: Я думаю, было бы хорошо, если бы я мог указать некоторые необязательные параметры, например.
append(string: "windows").to(file: "database.yml", :force => true)
Принимая это во внимание, я полагаю, что мне нужно использовать вызовы методов. Потому что, если я использую альтернативы 4-5, когда я указываю: force => true, я не могу знать, для строки это или для файла.