figaro 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a4b16b7aabf0f45581b9e38bbc91143a7754b53c
4
- data.tar.gz: ac3ebd390b6558897caedf70588023c2f32d568d
2
+ SHA256:
3
+ metadata.gz: b1a27ab5ff5cd4f370108899e90aace61d3ff641a6c1fa08240d4884d4c13b99
4
+ data.tar.gz: 88f024b11dae3709acd91bb630be9f38f009251726745fea02a0247d260d9aa0
5
5
  SHA512:
6
- metadata.gz: d98407b51af7e1a3754c0e9c8508e022b92515b11112cc1d0632e446e7747386e968b52fea202b6ee34fbea3f4fa7cb6c61687eedf51a23d924cdb6bffe9c88b
7
- data.tar.gz: 724b042e35ecceff47dccf0246cd73931dfc9fa663eda27f59e33205d82fabb8d674b34bc3ffb85a74630d8aee887420247111f8f7daa07d6d9edd2b2579d05e
6
+ metadata.gz: a32dbbd19c9825fdba50293d355968a5519d2d024a94122cdd34807e1163cde8c1d788f65c2c74f615c3b655026efbc6755c91243dff90c575d91cda5ef7c425
7
+ data.tar.gz: 27504e04547f47cdd49bb5e913cda2bbd7c838d7dd224e362dc993039a94144c63d86c0c71b5496b0dfd82c45b4e832e5e63db1fcf28f1e1ddac6d7fdaadeedc
@@ -0,0 +1 @@
1
+ github: [laserlemon]
data/.gitignore CHANGED
@@ -1,6 +1,6 @@
1
1
  .bundle
2
+ .ruby-version
2
3
  /Gemfile.lock
3
- /coverage
4
4
  /gemfiles/*.gemfile.lock
5
5
  /pkg
6
6
  /tmp
@@ -6,29 +6,18 @@ before_script:
6
6
  branches:
7
7
  only:
8
8
  - master
9
- cache: bundler
10
- env:
11
- global:
12
- secure: | # CODECLIMATE_REPO_TOKEN
13
- Pm3j2/BtAzMtqRMP83rFvDtpUNeIAdLMzwH62In+3h/AE8gHDArGYS+jmChw
14
- 2hKVjwzVUTWZlpSEocqAg/YIDB3BJzWmyc6UP+VA0gji6HsufXYTmKAVPSVY
15
- TQ7mPPP7hm95e3SkFbLdLbGkQfLdjIKeMY5lY/knX+QKUCjO52Y=
16
9
  gemfile:
17
- - gemfiles/rails30.gemfile
18
- - gemfiles/rails31.gemfile
19
- - gemfiles/rails32.gemfile
20
- - gemfiles/rails40.gemfile
21
- - gemfiles/rails41.gemfile
22
- - gemfiles/rails42.gemfile
23
- language: ruby
24
- matrix:
10
+ - gemfiles/rails52.gemfile
11
+ - gemfiles/rails60.gemfile
12
+ - gemfiles/rails6.gemfile
13
+ jobs:
25
14
  allow_failures:
26
15
  - rvm: ruby-head
16
+ - gemfile: gemfiles/rails6.gemfile
17
+ language: ruby
27
18
  rvm:
28
- - 1.9.3
29
- - "2.0"
30
- - "2.1"
31
- - "2.2"
19
+ - "2.5"
20
+ - "2.6"
21
+ - "2.7"
32
22
  - ruby-head
33
23
  script: bundle exec rspec
34
- sudo: false
@@ -1,3 +1,11 @@
1
+ ## 1.2.0 / 2020-05-10
2
+
3
+ * [ENHANCEMENT] Drop support for Rubies 1.9.3, 2.0, 2.1, and 2.2
4
+ * [ENHANCEMENT] Add support for Rubies 2.5, 2.6, and 2.7
5
+ * [ENHANCEMENT] Drop support for Rails 3 and 4
6
+ * [ENHANCEMENT] Add support for Rails 5.2 and 6.0
7
+ * [ENHANCEMENT] Proxy all ENV values via CLI to the "heroku" command
8
+
1
9
  ## 1.1.1 / 2015-04-30
2
10
 
3
11
  * [BUGFIX] Fix crash when environment-specific configuration is `nil`
data/Gemfile CHANGED
@@ -2,11 +2,10 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem "rails", ">= 3.0.3", "< 4.3"
5
+ gem "rails", ">= 5.2.0", "< 6.1"
6
6
 
7
7
  group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
8
+ gem "aruba", "~> 1.0"
9
+ gem "rspec", "~> 3.9"
10
+ gem "sqlite3"
12
11
  end
data/README.md CHANGED
@@ -1,30 +1,41 @@
1
+ ## 📢 UPDATE
2
+
3
+ Figaro [v2](https://github.com/laserlemon/figaro/tree/v2) development is underway but _stalled_. I need your help! Please consider [sponsoring Figaro's development](https://github.com/sponsors/laserlemon).
4
+
5
+ With the constraints of a family and a full-time job, even the _emotional_ support that sponsorship provides is extremely valuable in re-energizing Figaro development. Thank you! 💛
6
+
1
7
  # ![Figaro](https://raw.githubusercontent.com/laserlemon/figaro/1f6e709/doc/title.png)
2
8
 
3
9
  Simple, Heroku-friendly Rails app configuration using `ENV` and a single YAML file
4
10
 
5
- [![Gem Version](https://img.shields.io/gem/v/figaro.svg?style=flat-square)](http://badge.fury.io/rb/figaro)
6
- [![Build Status](https://img.shields.io/travis/laserlemon/figaro/master.svg?style=flat-square)](https://travis-ci.org/laserlemon/figaro)
7
- [![Code Climate](https://img.shields.io/codeclimate/github/laserlemon/figaro.svg?style=flat-square)](https://codeclimate.com/github/laserlemon/figaro)
8
- [![Coverage Status](https://img.shields.io/codeclimate/coverage/github/laserlemon/figaro.svg?style=flat-square)](https://codeclimate.com/github/laserlemon/figaro)
9
- [![Dependency Status](https://img.shields.io/gemnasium/laserlemon/figaro.svg?style=flat-square)](https://gemnasium.com/laserlemon/figaro)
11
+ [![Gem Version](https://img.shields.io/gem/v/figaro.svg)](http://badge.fury.io/rb/figaro)
12
+ [![Build Status](https://img.shields.io/travis/laserlemon/figaro/master.svg)](https://travis-ci.org/laserlemon/figaro)
10
13
 
11
- **NOTE:** If you're using Figaro 0.7 or prior, please refer to the [appropriate documentation](https://github.com/laserlemon/figaro/tree/0-stable#readme) or [upgrade](#how-do-i-upgrade-to-figaro-10) to Figaro 1.0.
14
+ **NOTE:** If you're using Figaro 0.7 or prior, please refer to the
15
+ [appropriate documentation](https://github.com/laserlemon/figaro/tree/0-stable#readme)
16
+ or [upgrade](#how-do-i-upgrade-to-figaro-10) to Figaro 1.0.
12
17
 
13
18
  ## Why does Figaro exist?
14
19
 
15
20
  Figaro was written to make it easy to securely configure Rails applications.
16
21
 
17
- Configuration values often include sensitive information. Figaro strives to be secure by default by encouraging a convention that keeps configuration out of Git.
22
+ Configuration values often include sensitive information. Figaro strives to be
23
+ secure by default by encouraging a convention that keeps configuration out of
24
+ Git.
18
25
 
19
26
  ## How does Figaro work?
20
27
 
21
- Figaro is inspired by the [Twelve-Factor App](http://12factor.net) methodology, which states:
28
+ Figaro is inspired by the [Twelve-Factor App](http://12factor.net) methodology,
29
+ which states:
22
30
 
23
31
  > The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.
24
32
 
25
- This is straightforward in production environments but local development environments are often shared between multiple applications, requiring multiple configurations.
33
+ This is straightforward in production environments but local development
34
+ environments are often shared between multiple applications, requiring multiple
35
+ configurations.
26
36
 
27
- Figaro parses a Git-ignored YAML file in your application and loads its values into `ENV`.
37
+ Figaro parses a Git-ignored YAML file in your application and loads its values
38
+ into `ENV`.
28
39
 
29
40
  ### Getting Started
30
41
 
@@ -38,10 +49,11 @@ Figaro installation is easy:
38
49
 
39
50
 
40
51
  ```bash
41
- $ figaro install
52
+ $ bundle exec figaro install
42
53
  ```
43
54
 
44
- This creates a commented `config/application.yml` file and adds it to your `.gitignore`. Add your own configuration to this file and you're done!
55
+ This creates a commented `config/application.yml` file and adds it to your
56
+ `.gitignore`. Add your own configuration to this file and you're done!
45
57
 
46
58
  ### Example
47
59
 
@@ -65,11 +77,13 @@ Pusher.key = ENV["pusher_key"]
65
77
  Pusher.secret = ENV["pusher_secret"]
66
78
  ```
67
79
 
68
- **Please note:** `ENV` is a simple key/value store. All values will be converted to strings. Deeply nested configuration structures are not possible.
80
+ **Please note:** `ENV` is a simple key/value store. All values will be converted
81
+ to strings. Deeply nested configuration structures are not possible.
69
82
 
70
83
  ### Environment-Specific Configuration
71
84
 
72
- Oftentimes, local configuration values change depending on Rails environment. In such cases, you can add environment-specific values to your configuration file:
85
+ Oftentimes, local configuration values change depending on Rails environment. In
86
+ such cases, you can add environment-specific values to your configuration file:
73
87
 
74
88
  ```yaml
75
89
  # config/application.yml
@@ -99,7 +113,9 @@ test:
99
113
 
100
114
  `Figaro.env` is a convenience that acts as a proxy to `ENV`.
101
115
 
102
- In testing, it is sometimes more convenient to stub and unstub `Figaro.env` than to set and reset `ENV`. Whether your application uses `ENV` or `Figaro.env` is entirely a matter of personal preference.
116
+ In testing, it is sometimes more convenient to stub and unstub `Figaro.env` than
117
+ to set and reset `ENV`. Whether your application uses `ENV` or `Figaro.env` is
118
+ entirely a matter of personal preference.
103
119
 
104
120
  ```yaml
105
121
  # config/application.yml
@@ -121,7 +137,9 @@ Figaro.env.google_analytics_key? # => false
121
137
 
122
138
  ### Required Keys
123
139
 
124
- If a particular configuration value is required but not set, it's appropriate to raise an error. With Figaro, you can either raise these errors proactively or lazily.
140
+ If a particular configuration value is required but not set, it's appropriate to
141
+ raise an error. With Figaro, you can either raise these errors proactively or
142
+ lazily.
125
143
 
126
144
  To proactively require configuration keys:
127
145
 
@@ -131,9 +149,12 @@ To proactively require configuration keys:
131
149
  Figaro.require_keys("pusher_app_id", "pusher_key", "pusher_secret")
132
150
  ```
133
151
 
134
- 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.
152
+ If any of the configuration keys above are not set, your application will raise
153
+ an error during initialization. This method is preferred because it prevents
154
+ runtime errors in a production application due to improper configuration.
135
155
 
136
- To require configuration keys lazily, reference the variables via "bang" methods on `Figaro.env`:
156
+ To require configuration keys lazily, reference the variables via "bang" methods
157
+ on `Figaro.env`:
137
158
 
138
159
  ```ruby
139
160
  # config/initializers/pusher.rb
@@ -145,7 +166,9 @@ Pusher.secret = Figaro.env.pusher_secret!
145
166
 
146
167
  ### Deployment
147
168
 
148
- Figaro is written with deployment in mind. In fact, [Heroku](https://www.heroku.com)'s use of `ENV` for application configuration was the original inspiration for Figaro.
169
+ Figaro is written with deployment in mind. In fact, [Heroku](https://www.heroku.com)'s
170
+ use of `ENV` for application configuration was the original inspiration for
171
+ Figaro.
149
172
 
150
173
  #### Heroku
151
174
 
@@ -155,7 +178,8 @@ Heroku already makes setting application configuration easy:
155
178
  $ heroku config:set google_analytics_key=UA-35722661-5
156
179
  ```
157
180
 
158
- Using the `figaro` command, you can set values from your configuration file all at once:
181
+ Using the `figaro` command, you can set values from your configuration file all
182
+ at once:
159
183
 
160
184
  ```bash
161
185
  $ figaro heroku:set -e production
@@ -207,13 +231,15 @@ Figaro and dotenv were written around the same time to solve similar problems.
207
231
  * Figaro was written with a focus on Rails development and conventions.
208
232
  * Dotenv was written to accommodate any type of Ruby application.
209
233
 
210
- Either library may suit your configuration needs. It often boils down to personal preference.
234
+ Either library may suit your configuration needs. It often boils down to
235
+ personal preference.
211
236
 
212
237
  ## Is application.yml like [secrets.yml](https://github.com/rails/rails/blob/v4.1.0/railties/lib/rails/generators/rails/app/templates/config/secrets.yml)?
213
238
 
214
239
  Yes. Kind of.
215
240
 
216
- Rails 4.1 introduced the `secrets.yml` convention for Rails application configuration. Figaro predated the Rails 4.1 release by two years.
241
+ Rails 4.1 introduced the `secrets.yml` convention for Rails application
242
+ configuration. Figaro predated the Rails 4.1 release by two years.
217
243
 
218
244
  ### Similarities
219
245
 
@@ -239,7 +265,10 @@ Rails 4.1 introduced the `secrets.yml` convention for Rails application configur
239
265
  * Figaro is inspired by Twelve-Factor App's concept of proper [configuration](http://12factor.net/config).
240
266
  * Secrets are… not.
241
267
 
242
- The emergence of a configuration convention for Rails is an important step, but as long as the last three differences above exist, Figaro will continue to be developed as a more secure, more consistent, and more standards-compliant alternative to `secrets.yml`.
268
+ The emergence of a configuration convention for Rails is an important step, but
269
+ as long as the last three differences above exist, Figaro will continue to be
270
+ developed as a more secure, more consistent, and more standards-compliant
271
+ alternative to `secrets.yml`.
243
272
 
244
273
  For more information, read the original [The Marriage of Figaro… and Rails](http://www.collectiveidea.com/blog/archives/2013/12/18/the-marriage-of-figaro-and-rails/) blog post.
245
274
 
@@ -284,14 +313,33 @@ $ figaro help heroku:set
284
313
  **NOTE:** The environment option is required for the `heroku:set` command. The
285
314
  Rake task in Figaro 0.7 used the default of "development" if unspecified.
286
315
 
316
+ ### Spring Configuration
317
+
318
+ If you're using Spring, either [stop](http://collectiveidea.com/blog/archives/2015/02/04/spring-is-dead-to-me)
319
+ or add `config/application.yml` to the watch list:
320
+
321
+ ```rb
322
+ # config/spring.rb
323
+
324
+ %w(
325
+ ...
326
+ config/application.yml
327
+ ).each { |path| Spring.watch(path) }
328
+ ```
329
+
287
330
  ## Who wrote Figaro?
288
331
 
289
- My name is Steve Richert and I wrote Figaro in March, 2012 with overwhelming encouragement from my employer, [Collective Idea](http://www.collectiveidea.com). Figaro has improved very much since then, thanks entirely to [inspiration](https://github.com/laserlemon/figaro/issues) and [contribution](https://github.com/laserlemon/figaro/graphs/contributors) from developers everywhere.
332
+ My name is Steve Richert and I wrote Figaro in March, 2012 with overwhelming
333
+ encouragement from my employer, [Collective Idea](http://www.collectiveidea.com).
334
+ Figaro has improved very much since then, thanks entirely to [inspiration](https://github.com/laserlemon/figaro/issues)
335
+ and [contribution](https://github.com/laserlemon/figaro/graphs/contributors)
336
+ from developers everywhere.
290
337
 
291
338
  **Thank you!**
292
339
 
293
340
  ## How can I help?
294
341
 
295
- Figaro is open source and contributions from the community are encouraged! No contribution is too small.
342
+ Figaro is open source and contributions from the community are encouraged! No
343
+ contribution is too small.
296
344
 
297
345
  See Figaro's [contribution guidelines](CONTRIBUTING.md) for more information.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "figaro"
5
- gem.version = "1.1.1"
5
+ gem.version = "1.2.0"
6
6
 
7
7
  gem.author = "Steve Richert"
8
8
  gem.email = "steve.richert@gmail.com"
@@ -11,10 +11,10 @@ Gem::Specification.new do |gem|
11
11
  gem.homepage = "https://github.com/laserlemon/figaro"
12
12
  gem.license = "MIT"
13
13
 
14
- gem.add_dependency "thor", "~> 0.14"
14
+ gem.add_dependency "thor", ">= 0.14.0", "< 2"
15
15
 
16
- gem.add_development_dependency "bundler", "~> 1.7"
17
- gem.add_development_dependency "rake", "~> 10.4"
16
+ gem.add_development_dependency "bundler", ">= 1.7.0", "< 3"
17
+ gem.add_development_dependency "rake", ">= 10.4.0", "< 14"
18
18
 
19
19
  gem.files = `git ls-files`.split($\)
20
20
  gem.test_files = gem.files.grep(/^spec/)
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: ".."
4
+
5
+ gem "rails", "~> 5.2.0"
6
+
7
+ group :test do
8
+ gem "aruba", "~> 1.0"
9
+ gem "rspec", "~> 3.9"
10
+ gem "sqlite3"
11
+ end
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: ".."
4
+
5
+ gem "rails", "~> 6.0"
6
+
7
+ group :test do
8
+ gem "aruba", "~> 1.0"
9
+ gem "rspec", "~> 3.9"
10
+ gem "sqlite3"
11
+ end
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: ".."
4
+
5
+ gem "rails", "~> 6.0.0"
6
+
7
+ group :test do
8
+ gem "aruba", "~> 1.0"
9
+ gem "rspec", "~> 3.9"
10
+ gem "sqlite3"
11
+ end
@@ -31,6 +31,7 @@ module Figaro
31
31
  default: "config/application.yml",
32
32
  desc: "Specify a configuration file path"
33
33
  method_option "remote",
34
+ aliases: ["-r"],
34
35
  desc: "Specify a Heroku git remote"
35
36
 
36
37
  define_method "heroku:set" do
@@ -4,7 +4,7 @@ module Figaro
4
4
  class CLI < Thor
5
5
  class HerokuSet < Task
6
6
  def run
7
- system(configuration, command)
7
+ system(env, command)
8
8
  end
9
9
 
10
10
  private
@@ -15,6 +15,10 @@ module Figaro
15
15
 
16
16
  private
17
17
 
18
+ def env
19
+ ENV.to_hash.update(configuration)
20
+ end
21
+
18
22
  def configuration
19
23
  application.configuration
20
24
  end
@@ -1,12 +1,12 @@
1
1
  describe "figaro heroku:set" do
2
2
  before do
3
- create_dir("example")
3
+ create_directory("example")
4
4
  cd("example")
5
5
  write_file("config/application.yml", "foo: bar")
6
6
  end
7
7
 
8
8
  it "sends Figaro configuration to Heroku" do
9
- run_simple("figaro heroku:set")
9
+ run_command_and_stop("figaro heroku:set")
10
10
 
11
11
  command = commands.last
12
12
  expect(command.name).to eq("heroku")
@@ -16,7 +16,7 @@ describe "figaro heroku:set" do
16
16
  it "respects path" do
17
17
  write_file("env.yml", "foo: bar")
18
18
 
19
- run_simple("figaro heroku:set -p env.yml")
19
+ run_command_and_stop("figaro heroku:set -p env.yml")
20
20
 
21
21
  command = commands.last
22
22
  expect(command.name).to eq("heroku")
@@ -30,7 +30,7 @@ test:
30
30
  foo: baz
31
31
  EOF
32
32
 
33
- run_simple("figaro heroku:set -e test")
33
+ run_command_and_stop("figaro heroku:set -e test")
34
34
 
35
35
  command = commands.last
36
36
  expect(command.name).to eq("heroku")
@@ -38,7 +38,7 @@ EOF
38
38
  end
39
39
 
40
40
  it "targets a specific Heroku app" do
41
- run_simple("figaro heroku:set -a foo-bar-app")
41
+ run_command_and_stop("figaro heroku:set -a foo-bar-app")
42
42
 
43
43
  command = commands.last
44
44
  expect(command.name).to eq("heroku")
@@ -47,7 +47,7 @@ EOF
47
47
  end
48
48
 
49
49
  it "targets a specific Heroku git remote" do
50
- run_simple("figaro heroku:set --remote production")
50
+ run_command_and_stop("figaro heroku:set -r production")
51
51
 
52
52
  command = commands.last
53
53
  expect(command.name).to eq("heroku")
@@ -58,7 +58,7 @@ EOF
58
58
  it "handles values with special characters" do
59
59
  overwrite_file("config/application.yml", "foo: bar baz")
60
60
 
61
- run_simple("figaro heroku:set")
61
+ run_command_and_stop("figaro heroku:set")
62
62
 
63
63
  command = commands.last
64
64
  expect(command.name).to eq("heroku")
@@ -1,19 +1,19 @@
1
1
  describe "figaro install" do
2
2
  before do
3
- create_dir("example")
3
+ create_directory("example")
4
4
  cd("example")
5
5
  end
6
6
 
7
7
  it "creates a configuration file" do
8
- run_simple("figaro install")
8
+ run_command_and_stop("figaro install")
9
9
 
10
- check_file_presence(["config/application.yml"], true)
10
+ expect("config/application.yml").to be_an_existing_file
11
11
  end
12
12
 
13
13
  it "respects path" do
14
- run_simple("figaro install -p env.yml")
14
+ run_command_and_stop("figaro install -p env.yml")
15
15
 
16
- check_file_presence(["env.yml"], true)
16
+ expect("env.yml").to be_an_existing_file
17
17
  end
18
18
 
19
19
  context "with a .gitignore file" do
@@ -25,25 +25,25 @@ EOF
25
25
  end
26
26
 
27
27
  it "Git-ignores the configuration file if applicable" do
28
- run_simple("figaro install")
28
+ run_command_and_stop("figaro install")
29
29
 
30
- check_file_content(".gitignore", %r(^/foo$), true)
31
- check_file_content(".gitignore", %r(^/bar$), true)
32
- check_file_content(".gitignore", %r(^/config/application\.yml$), true)
30
+ expect(".gitignore").to have_file_content(%r(^/foo$))
31
+ expect(".gitignore").to have_file_content(%r(^/bar$))
32
+ expect(".gitignore").to have_file_content(%r(^/config/application\.yml$))
33
33
  end
34
34
 
35
35
  it "respects path" do
36
- run_simple("figaro install -p env.yml")
36
+ run_command_and_stop("figaro install -p env.yml")
37
37
 
38
- check_file_content(".gitignore", %r(^/env\.yml$), true)
38
+ expect(".gitignore").to have_file_content(%r(^/env\.yml$))
39
39
  end
40
40
  end
41
41
 
42
42
  context "without a .gitignore file" do
43
43
  it "doesn't generate a new .gitignore file" do
44
- run_simple("figaro install")
44
+ run_command_and_stop("figaro install")
45
45
 
46
- check_file_presence([".gitignore"], false)
46
+ expect(".gitignore").not_to be_an_existing_file
47
47
  end
48
48
  end
49
49
  end
@@ -1,15 +1,20 @@
1
1
  describe Figaro::Rails do
2
2
  before do
3
- run_simple(<<-CMD)
3
+ run_command_and_stop(<<-CMD)
4
4
  rails new example \
5
5
  --skip-gemfile \
6
- --skip-bundle \
6
+ --skip-git \
7
7
  --skip-keeps \
8
8
  --skip-sprockets \
9
+ --skip-spring \
10
+ --skip-listen \
9
11
  --skip-javascript \
10
- --skip-test-unit \
12
+ --skip-turbolinks \
13
+ --skip-test \
14
+ --skip-bootsnap \
11
15
  --no-rc \
12
- --quiet
16
+ --skip-bundle \
17
+ --skip-webpack-install
13
18
  CMD
14
19
  cd("example")
15
20
  end
@@ -20,9 +25,9 @@ describe Figaro::Rails do
20
25
  end
21
26
 
22
27
  it "loads application.yml" do
23
- run_simple("rails runner 'puts Figaro.env.foo'")
28
+ run_command_and_stop("rails runner 'puts Figaro.env.foo'")
24
29
 
25
- assert_partial_output("bar", all_stdout)
30
+ expect(all_stdout).to include("bar")
26
31
  end
27
32
 
28
33
  it "happens before database initialization" do
@@ -32,9 +37,9 @@ development:
32
37
  database: db/<%= ENV["foo"] %>.sqlite3
33
38
  EOF
34
39
 
35
- run_simple("rake db:migrate")
40
+ run_command_and_stop("rake db:migrate")
36
41
 
37
- check_file_presence(["db/bar.sqlite3"], true)
42
+ expect("db/bar.sqlite3").to be_an_existing_file
38
43
  end
39
44
 
40
45
  it "happens before application configuration" do
@@ -42,9 +47,9 @@ EOF
42
47
  config.foo = ENV["foo"]
43
48
  EOL
44
49
 
45
- run_simple("rails runner 'puts Rails.application.config.foo'")
50
+ run_command_and_stop("rails runner 'puts Rails.application.config.foo'")
46
51
 
47
- assert_partial_output("bar", all_stdout)
52
+ expect(all_stdout).to include("bar")
48
53
  end
49
54
  end
50
55
  end
@@ -1,11 +1,6 @@
1
1
  require "bundler"
2
2
  Bundler.setup
3
3
 
4
- if ENV["CODECLIMATE_REPO_TOKEN"]
5
- require "codeclimate-test-reporter"
6
- CodeClimate::TestReporter.start
7
- end
8
-
9
4
  require "figaro"
10
5
 
11
6
  Bundler.require(:test)
@@ -2,7 +2,7 @@ require "aruba/api"
2
2
 
3
3
  module ArubaHelpers
4
4
  def insert_into_file_after(file, pattern, addition)
5
- content = prep_for_fs_check { IO.read(file) }
5
+ content = cd(".") { IO.read(file) }
6
6
  content.sub!(pattern, "\\0\n#{addition}")
7
7
  overwrite_file(file, content)
8
8
  end
@@ -13,7 +13,6 @@ RSpec.configure do |config|
13
13
  config.include(ArubaHelpers)
14
14
 
15
15
  config.before do
16
- @aruba_timeout_seconds = 60
17
- FileUtils.rm_rf(current_dir)
16
+ setup_aruba
18
17
  end
19
18
  end
metadata CHANGED
@@ -1,57 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: figaro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Richert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-30 00:00:00.000000000 Z
11
+ date: 2020-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.14'
19
+ version: 0.14.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.14.0
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '0.14'
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.7.0
40
+ - - "<"
32
41
  - !ruby/object:Gem::Version
33
- version: '1.7'
42
+ version: '3'
34
43
  type: :development
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '1.7'
49
+ version: 1.7.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '3'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rake
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
- - - "~>"
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 10.4.0
60
+ - - "<"
46
61
  - !ruby/object:Gem::Version
47
- version: '10.4'
62
+ version: '14'
48
63
  type: :development
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - "~>"
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 10.4.0
70
+ - - "<"
53
71
  - !ruby/object:Gem::Version
54
- version: '10.4'
72
+ version: '14'
55
73
  description: Simple, Heroku-friendly Rails app configuration using ENV and a single
56
74
  YAML file
57
75
  email: steve.richert@gmail.com
@@ -60,6 +78,7 @@ executables:
60
78
  extensions: []
61
79
  extra_rdoc_files: []
62
80
  files:
81
+ - ".github/FUNDING.yml"
63
82
  - ".gitignore"
64
83
  - ".rspec"
65
84
  - ".travis.yml"
@@ -71,12 +90,9 @@ files:
71
90
  - Rakefile
72
91
  - bin/figaro
73
92
  - figaro.gemspec
74
- - gemfiles/rails30.gemfile
75
- - gemfiles/rails31.gemfile
76
- - gemfiles/rails32.gemfile
77
- - gemfiles/rails40.gemfile
78
- - gemfiles/rails41.gemfile
79
- - gemfiles/rails42.gemfile
93
+ - gemfiles/rails52.gemfile
94
+ - gemfiles/rails6.gemfile
95
+ - gemfiles/rails60.gemfile
80
96
  - lib/figaro.rb
81
97
  - lib/figaro/application.rb
82
98
  - lib/figaro/cli.rb
@@ -122,8 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
138
  - !ruby/object:Gem::Version
123
139
  version: '0'
124
140
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.4.6
141
+ rubygems_version: 3.1.3
127
142
  signing_key:
128
143
  specification_version: 4
129
144
  summary: Simple Rails app configuration
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 3.0.3"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 3.1.0"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 3.2.0"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 4.0.0"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 4.1.0"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rails", "~> 4.2.0"
6
-
7
- group :test do
8
- gem "aruba", "~> 0.6.2"
9
- gem "codeclimate-test-reporter", require: false
10
- gem "rspec", "~> 3.1"
11
- gem "sqlite3", "~> 1.3"
12
- end