Соответствующий синтаксис DSL

Я пытаюсь написать свой собственный 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, я не могу знать, для строки это или для файла.

5
задан never_had_a_name 19 August 2010 в 06:16
поделиться