dotenv-rails 2.6.0 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -4
  3. data/lib/dotenv/rails.rb +15 -5
  4. metadata +8 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e919ac045eaf29163f767080ac21c201e91fe366e77aea3eafdceb0f088d1f84
4
- data.tar.gz: 82745ab4e48e7f79d366351d8aa44b44e94a7ba859b08a4ec9093ea5eff76e96
3
+ metadata.gz: 7d0c13519d33404b622266fbf7ff71079a199716ac564e4a2729384b15b970d7
4
+ data.tar.gz: f2da97acce1fb1e953e000114f9f01edb596adb0676b20a1e11cc8d77e6c405b
5
5
  SHA512:
6
- metadata.gz: 3e61d18e243b7025ac832048fa1f68cd6eef7c4cfc3949c8e24402c2b6c1d9f25e4338252ba1f5eb2e4101173cd2a8751d543dcee09c42a2dee2ae7f14d9e5e2
7
- data.tar.gz: 1146bc5f56f10d03657aa76d8cadc35f8b5a986dcf98b2e94c97b40e7d29f1d9259248757cd08a423ed34b4ad22723e5d7c402af988da0d5f81fa16b14243cd9
6
+ metadata.gz: 8d2102375cd88ce4b90c44629d0976062f9d9ebe05f95e480f38f6dcd509c28d23d8dff295339e2f4870263e595fcff6f45d6f972fee2e00a67a8b946979032a
7
+ data.tar.gz: 420d8614065db0398d72e13548c53ee25aa1da6d1676a96a7a0f93dbe33aca24e5ea4c48073b37ee29645a0bbcc56e6082289bd9473e37ade4f395eec2176099
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # dotenv [![Build Status](https://secure.travis-ci.org/bkeepers/dotenv.svg?branch=master)](https://travis-ci.org/bkeepers/dotenv) [![Gem Version](https://badge.fury.io/rb/dotenv.svg)](https://badge.fury.io/rb/dotenv) [![Join the chat at https://gitter.im/bkeepers/dotenv](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bkeepers/dotenv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1
+ # dotenv [![Gem Version](https://badge.fury.io/rb/dotenv.svg)](https://badge.fury.io/rb/dotenv) [![Join the chat at https://gitter.im/bkeepers/dotenv](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bkeepers/dotenv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2
2
 
3
3
  Shim to load environment variables from `.env` into `ENV` in *development*.
4
4
 
@@ -30,7 +30,10 @@ dotenv is initialized in your Rails app during the `before_configuration` callba
30
30
  # config/application.rb
31
31
  Bundler.require(*Rails.groups)
32
32
 
33
- Dotenv::Railtie.load
33
+ # Load dotenv only in development or test environment
34
+ if ['development', 'test'].include? ENV['RAILS_ENV']
35
+ Dotenv::Railtie.load
36
+ end
34
37
 
35
38
  HOSTNAME = ENV['HOSTNAME']
36
39
  ```
@@ -62,7 +65,7 @@ Dotenv.load
62
65
 
63
66
  By default, `load` will look for a file called `.env` in the current working directory. Pass in multiple files and they will be loaded in order. The first value set for a variable will win.
64
67
 
65
- ```
68
+ ```ruby
66
69
  require 'dotenv'
67
70
  Dotenv.load('file1.env', 'file2.env')
68
71
  ```
@@ -177,6 +180,16 @@ Dotenv.require_keys("SERVICE_APP_ID", "SERVICE_KEY", "SERVICE_SECRET")
177
180
 
178
181
  If any of the configuration keys above are not set, your application will raise an error during initialization. This method is preferred because it prevents runtime errors in a production application due to improper configuration.
179
182
 
183
+ ### Parsing
184
+
185
+ To parse a list of env files for programmatic inspection without modifying the ENV:
186
+
187
+ ```ruby
188
+ Dotenv.parse(".env.local", ".env")
189
+ # => {'S3_BUCKET' => 'YOURS3BUCKET', 'SECRET_KEY' => 'YOURSECRETKEYGOESHERE', ...}
190
+ ```
191
+
192
+ This method returns a hash of the ENV var name/value pairs.
180
193
 
181
194
  ## Frequently Answered Questions
182
195
 
@@ -190,7 +203,7 @@ If you use this gem to handle env vars for multiple Rails environments (developm
190
203
 
191
204
  ### What other .env* files can I use?
192
205
 
193
- `dotenv-rails` will override in the following order (highest defined varible overrides lower):
206
+ `dotenv-rails` will override in the following order (highest defined variable overrides lower):
194
207
 
195
208
  | Hierarchy Priority | Filename | Environment | Should I `.gitignore`it? | Notes |
196
209
  | ------------------ | ------------------------ | -------------------- | --------------------------------------------------- | ------------------------------------------------------------ |
@@ -208,12 +221,40 @@ If you use this gem to handle env vars for multiple Rails environments (developm
208
221
 
209
222
  Credentials should only be accessible on the machines that need access to them. Never commit sensitive information to a repository that is not needed by every development machine and server.
210
223
 
224
+
225
+ You can use the `-t` or `--template` flag on the dotenv cli to create a template of your `.env` file.
226
+ ```shell
227
+ $ dotenv -t .env
228
+ ```
229
+ A template will be created in your working directory named `{FINAME}.template`. So in the above example, it would create a `.env.template` file.
230
+
231
+ The template will contain all the environment variables in your `.env` file but with their values set to the variable names.
232
+
233
+ ```shell
234
+ # .env
235
+ S3_BUCKET=YOURS3BUCKET
236
+ SECRET_KEY=YOURSECRETKEYGOESHERE
237
+ ```
238
+
239
+ Would become
240
+
241
+ ```shell
242
+ # .env.template
243
+ S3_BUCKET=S3_BUCKET
244
+ SECRET_KEY=SECRET_KEY
245
+ ```
246
+
211
247
  Personally, I prefer to commit the `.env` file with development-only settings. This makes it easy for other developers to get started on the project without compromising credentials for other environments. If you follow this advice, make sure that all the credentials for your development environment are different from your other deployments and that the development credentials do not have access to any confidential data.
212
248
 
213
249
  ### Why is it not overriding existing `ENV` variables?
214
250
 
215
251
  By default, it **won't** overwrite existing environment variables as dotenv assumes the deployment environment has more knowledge about configuration than the application does. To overwrite existing environment variables you can use `Dotenv.overload`.
216
252
 
253
+ You can also use the `-o` or `--overload` flag on the dotenv cli to override existing `ENV` variables.
254
+ ```shell
255
+ $ dotenv -o -f ".env.local,.env"
256
+ ```
257
+
217
258
  ## Contributing
218
259
 
219
260
  If you want a better idea of how dotenv works, check out the [Ruby Rogues Code Reading of dotenv](https://www.youtube.com/watch?v=lKmY_0uY86s).
data/lib/dotenv/rails.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "dotenv"
2
2
 
3
- # Fix for rspec rake tasks loading in development
3
+ # Fix for rake tasks loading in development
4
4
  #
5
5
  # Dotenv loads environment variables when the Rails application is initialized.
6
6
  # When running `rake`, the Rails application is initialized in development.
@@ -9,8 +9,11 @@ require "dotenv"
9
9
  #
10
10
  # See https://github.com/bkeepers/dotenv/issues/219
11
11
  if defined?(Rake.application)
12
- is_running_specs = Rake.application.top_level_tasks.grep(/^spec(:|$)/).any?
13
- Rails.env = ENV["RAILS_ENV"] ||= "test" if is_running_specs
12
+ task_regular_expression = /^(default$|parallel:spec|spec(:|$))/
13
+ if Rake.application.top_level_tasks.grep(task_regular_expression).any?
14
+ environment = Rake.application.options.show_tasks ? "development" : "test"
15
+ Rails.env = ENV["RAILS_ENV"] ||= environment
16
+ end
14
17
  end
15
18
 
16
19
  Dotenv.instrumenter = ActiveSupport::Notifications
@@ -38,6 +41,13 @@ module Dotenv
38
41
  Dotenv.load(*dotenv_files)
39
42
  end
40
43
 
44
+ # Public: Reload dotenv
45
+ #
46
+ # Same as `load`, but will override existing values in `ENV`
47
+ def overload
48
+ Dotenv.overload(*dotenv_files)
49
+ end
50
+
41
51
  # Internal: `Rails.root` is nil in Rails 4.1 before the application is
42
52
  # initialized, so this falls back to the `RAILS_ROOT` environment variable,
43
53
  # or the current working directory.
@@ -51,8 +61,6 @@ module Dotenv
51
61
  instance.load
52
62
  end
53
63
 
54
- config.before_configuration { load }
55
-
56
64
  private
57
65
 
58
66
  def dotenv_files
@@ -63,5 +71,7 @@ module Dotenv
63
71
  root.join(".env")
64
72
  ].compact
65
73
  end
74
+
75
+ config.before_configuration { load }
66
76
  end
67
77
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotenv-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-10 00:00:00.000000000 Z
11
+ date: 2022-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.6.0
19
+ version: 2.8.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.6.0
26
+ version: 2.8.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -31,9 +31,6 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.2'
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '6.0'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -41,9 +38,6 @@ dependencies:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
40
  version: '3.2'
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '6.0'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: spring
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -74,7 +68,7 @@ homepage: https://github.com/bkeepers/dotenv
74
68
  licenses:
75
69
  - MIT
76
70
  metadata: {}
77
- post_install_message:
71
+ post_install_message:
78
72
  rdoc_options: []
79
73
  require_paths:
80
74
  - lib
@@ -89,9 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
83
  - !ruby/object:Gem::Version
90
84
  version: '0'
91
85
  requirements: []
92
- rubyforge_project:
93
- rubygems_version: 2.7.6
94
- signing_key:
86
+ rubygems_version: 3.2.32
87
+ signing_key:
95
88
  specification_version: 4
96
89
  summary: Autoload dotenv in Rails.
97
90
  test_files: []