Current section

8 Versions

Jump to

Compare versions

4 files changed
+17 additions
-5 deletions
  @@ -11,7 +11,7 @@ First add `dotenv` to your dependencies.
11 11 For the latest release:
12 12
13 13 ```elixir
14 - {:dotenv, "~> 0.0.3"}
14 + {:dotenv, "~> 0.0.4"}
15 15 ```
16 16
17 17 For master:
  @@ -9,7 +9,7 @@
9 9 [<<"lib/dotenv.ex">>,<<"lib/dotenv/env.ex">>,<<"lib/dotenv/server.ex">>,
10 10 <<"lib/dotenv/supervisor.ex">>,<<"mix.exs">>,<<"README.md">>,<<"LICENSE">>]}.
11 11 {<<"licenses">>,[<<"MIT">>]}.
12 - {<<"links">>,#{<<"github">> => <<"https://github.com/avdi/dotenv_elixir">>}}.
12 + {<<"links">>,[{<<"github">>,<<"https://github.com/avdi/dotenv_elixir">>}]}.
13 13 {<<"name">>,<<"dotenv">>}.
14 - {<<"requirements">>,#{}}.
15 - {<<"version">>,<<"0.0.4">>}.
14 + {<<"requirements">>,[]}.
15 + {<<"version">>,<<"1.0.0">>}.
  @@ -26,6 +26,7 @@ defmodule Dotenv do
26 26 Dotenv.Supervisor.start_link(env_path)
27 27 end
28 28
29 + @quotes_pattern ~r/^(['"])(.*)\1$/
29 30 @pattern ~r/
30 31 ^
31 32 (?:export\s+)? # optional export
  @@ -120,10 +121,21 @@ defmodule Dotenv do
120 121 def load(env_path) do
121 122 {env_path, contents} = read_env_file(env_path)
122 123 values = Regex.scan(@pattern, contents)
124 + |> trim_quotes_from_values
123 125 |> Enum.reduce(HashDict.new, fn([_whole, k, v], env) -> HashDict.put(env, k, v) end)
124 126 %Env{paths: [env_path], values: values}
125 127 end
126 128
129 + defp trim_quotes_from_values(values) do
130 + values |> Enum.map(fn(values)->
131 + Enum.map(values, &trim_quotes/1)
132 + end)
133 + end
134 +
135 + defp trim_quotes(value) do
136 + String.replace(value, @quotes_pattern, "\\2")
137 + end
138 +
127 139 defp read_env_file(:automatic) do
128 140 case find_env_path do
129 141 {:ok, env_path} -> {env_path, File.read!(env_path)}
  @@ -3,7 +3,7 @@ defmodule DotenvElixir.Mixfile do
3 3
4 4 def project do
5 5 [ app: :dotenv,
6 - version: "0.0.4",
6 + version: "1.0.0",
7 7 elixir: "~> 1.0.0",
8 8 deps: deps,
9 9 package: [