Packages
ex_gram
0.5.0-rc4
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.58.0
0.57.0
0.56.1
0.56.0
0.55.1
0.55.0
0.54.0
0.53.0
0.52.2
0.52.1
0.52.0
0.51.1
0.51.0
0.50.2
0.50.1
0.50.0
0.41.0
0.40.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.5.0-rc6
0.5.0-rc5
0.5.0-rc4
0.5.0-rc3
0.5.0-rc2
Telegram Bot API low level and framework
Current section
Files
Jump to
Current section
Files
lib/ex_gram/dsl/keyboard.ex
defmodule ExGram.Dsl.Keyboard do
defmacro keyboard(which_keyboard, do: block) do
build_keyboard_f =
case which_keyboard do
:inline -> &ExGram.Dsl.create_inline/1
end
quote do
var!(keyboard_variable_1) = []
unquote(block)
unquote(build_keyboard_f).(var!(keyboard_variable_1))
end
end
defmacro row(do: block) do
quote do
var!(keyboard_variable_row) = []
unquote(block)
var!(keyboard_variable_1) = var!(keyboard_variable_1) ++ [var!(keyboard_variable_row)]
end
end
defmacro button(text, opts \\ []) do
quote do
var!(keyboard_variable_row) =
var!(keyboard_variable_row) ++ [Keyword.merge([text: unquote(text)], unquote(opts))]
end
end
end