Packages
wallaby
0.30.0
0.31.0
0.30.12
0.30.11
0.30.10
0.30.9
0.30.8
0.30.7
0.30.6
0.30.5
0.30.4
0.30.3
0.30.2
0.30.1
0.30.0
0.29.1
0.29.0
0.28.1
0.28.0
0.27.0
0.26.2
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.0
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
0.0.1
Concurrent feature tests for elixir
Current section
Files
Jump to
Current section
Files
lib/wallaby/helpers/key_codes.ex
defmodule Wallaby.Helpers.KeyCodes do
@moduledoc """
Shortcuts for various keys.
- :null
- :cancel
- :help
- :backspace
- :tab
- :clear
- :return
- :enter
- :shift
- :control
- :alt
- :pause
- :escape
- :space
- :pageup
- :pagedown
- :end
- :home
- :left_arrow
- :up_arrow
- :right_arrow
- :down_arrow
- :insert
- :delete
- :semicolon
- :equals
- :num0
- :num1
- :num2
- :num3
- :num4
- :num5
- :num6
- :num7
- :num8
- :num9
- :multiply
- :add
- :seperator
- :subtract
- :decimal
- :divide
- :command
"""
# Encode a list of key codes to a usable JSON representation.
@spec json(list(atom)) :: String.t()
def json(keys) when is_list(keys) do
unicode =
keys
|> Enum.reduce([], fn x, acc -> acc ++ split_strings(x) end)
|> Enum.map_join(",", &"\"#{code(&1)}\"")
"{\"value\": [#{unicode}]}"
end
# Ensures a list of keys are in binary form to check for local files.
@spec chars(list() | binary()) :: [binary()]
def chars(keys) do
keys
|> List.wrap()
|> Enum.map(fn
a when is_atom(a) -> code(a)
s -> s
end)
end
defp split_strings(x) when is_binary(x), do: String.graphemes(x)
defp split_strings(x), do: [x]
defp code(:null), do: "\\uE000"
defp code(:cancel), do: "\\uE001"
defp code(:help), do: "\\uE002"
defp code(:backspace), do: "\\uE003"
defp code(:tab), do: "\\uE004"
defp code(:clear), do: "\\uE005"
defp code(:return), do: "\\uE006"
defp code(:enter), do: "\\uE007"
defp code(:shift), do: "\\uE008"
defp code(:control), do: "\\uE009"
defp code(:alt), do: "\\uE00A"
defp code(:pause), do: "\\uE00B"
defp code(:escape), do: "\\uE00C"
defp code(:space), do: "\\uE00D"
defp code(:pageup), do: "\\uE00E"
defp code(:pagedown), do: "\\uE00F"
defp code(:end), do: "\\uE010"
defp code(:home), do: "\\uE011"
defp code(:left_arrow), do: "\\uE012"
defp code(:up_arrow), do: "\\uE013"
defp code(:right_arrow), do: "\\uE014"
defp code(:down_arrow), do: "\\uE015"
defp code(:insert), do: "\\uE016"
defp code(:delete), do: "\\uE017"
defp code(:semicolon), do: "\\uE018"
defp code(:equals), do: "\\uE019"
defp code(:num0), do: "\\uE01A"
defp code(:num1), do: "\\uE01B"
defp code(:num2), do: "\\uE01C"
defp code(:num3), do: "\\uE01D"
defp code(:num4), do: "\\uE01E"
defp code(:num5), do: "\\uE01F"
defp code(:num6), do: "\\uE020"
defp code(:num7), do: "\\uE021"
defp code(:num8), do: "\\uE022"
defp code(:num9), do: "\\uE023"
defp code(:multiply), do: "\\uE024"
defp code(:add), do: "\\uE025"
defp code(:seperator), do: "\\uE026"
defp code(:subtract), do: "\\uE027"
defp code(:decimal), do: "\\uE028"
defp code(:divide), do: "\\uE029"
defp code(:command), do: "\\uE03D"
defp code(char), do: char
end