Packages
ex_aws
0.1.2
2.7.0
2.6.1
2.6.0
2.5.11
2.5.10
2.5.9
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.1
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-beta0
0.5.0
0.4.19
0.4.18
0.4.17
0.4.15
0.4.14
0.4.13
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others.
Current section
Files
Jump to
Current section
Files
lib/ex_aws/utils.ex
defmodule ExAws.Utils do
@moduledoc false
def camelize_keys(opts) do
camelize_keys(opts, deep: false)
end
# This isn't tail recursive. However, given that the structures
# being worked upon are relatively shallow, this is ok.
def camelize_keys(opts = %{}, deep: deep) do
opts |> Enum.reduce(%{}, fn({k ,v}, map) ->
if deep do
Map.put(map, camelize_key(k), camelize_keys(v, deep: true))
else
Map.put(map, camelize_key(k), v)
end
end)
end
def camelize_keys(opts, depth) do
try do
opts
|> Enum.into(%{})
|> camelize_keys(depth)
rescue
[Protocol.UndefinedError, ArgumentError] -> opts
end
end
defp camelize_key(key) when is_atom(key) do
key
|> Atom.to_string
|> Mix.Utils.camelize
end
defp camelize_key(key) when is_binary(key) do
key |> Mix.Utils.camelize
end
def upcase(value) when is_atom(value) do
value
|> Atom.to_string
|> String.upcase
end
def upcase(value) when is_binary(value) do
String.upcase(value)
end
end