Packages
ex_gram
0.63.0
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/inspect/keyboard_button.ex
defimpl Inspect, for: ExGram.Model.KeyboardButton do
import Inspect.Algebra
@optional_fields [
:icon_custom_emoji_id,
:style,
:request_users,
:request_chat,
:request_contact,
:request_location,
:request_poll,
:web_app
]
def inspect(button, opts) do
parts =
@optional_fields
|> Enum.filter(fn field -> Map.get(button, field) not in [nil, false] end)
|> Enum.map(fn field -> concat([string(Atom.to_string(field) <> ": "), to_doc(Map.get(button, field), opts)]) end)
quoted_text = to_doc(button.text, opts)
inner =
case parts do
[] ->
quoted_text
parts ->
concat([quoted_text, string(" "), fold_doc(parts, fn a, b -> glue(concat(a, ","), b) end)])
end
concat(["#KeyboardButton<", inner, ">"])
end
end