Drab: remote controlled frontend framework for Phoenix

Very happy to see this project. Love the idea writing code on the server and having it run on the client. Anything that avoids Javascript is a blessing…

I would like to suggest some changes to the Drab syntax, that could improve code readability (if it is not too late in this projects lifecycle.)

Drab.Query Existing syntax:
return =
socket |> select(what, from: selector)
socket |> update(what, set: new_value, on: selector)
socket |> insert(what, into: selector)
socket |> delete(what, from: selector)
socket |> execute(what, on: selector)

Drab.Query Proposed syntax:
return =
socket |> select(what, at: selector)
socket |> create(what, at: selector)
socket |> update(what, at: selector)
socket |> insert(what, at: selector)
socket |> delete(what, at: selector)
socket |> execute(what, at: selector)


Drab Event Handling Existing syntax:
<input id=“text_to_uppercase” value=“uppercase me”>
<button drab-event=“click” drab-handler="uppercase>Do it </button>

Drab Event Handling Proposed syntax:
<input id=“text_to_uppercase” value=“uppercase me”>
<button drab-on=“click” drab-do=“uppercase”>Do it </button>


Drab Event Handling Shortcuts - Existing syntax:
<button drab-click=“clicked_sleep_button” data-sleep=“1”> Sleep 1 second </button>
<button drab-click=“clicked_sleep_button” data-sleep=“2”> Sleep 2 seconds </button>
<button drab-click=“clicked_sleep_button” data-sleep=“3”> Sleep 3 seconds </button>

Drab Event Handling Shortcuts - Proposed syntax:
<button drab-on-click-do=“clicked_sleep_button” use-sleep=“1”> Sleep 1 second </button>
<button drab-on-click-do=“clicked_sleep_button” use-sleep=“2”> Sleep 2 seconds </button>
<button drab-on-click-do=“clicked_sleep_button” use-sleep=“3”> Sleep 3 seconds </button>

1 Like