dry-config 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +13 -0
- data/README.md +22 -17
- data/lib/dry/config/base.rb +2 -2
- data/lib/dry/config/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57e17a37431eca1d416d3f705de04658b83af1e4
|
4
|
+
data.tar.gz: 7d3230539c67e2553b1d99ec3c024731343fe2b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48353a58ebf50df00f8fa270b4677bd801db7e8e696ba732a0a55957e71a3df1a2dced1c0dfd054a85c83634c79f1753727d668d0c77908b75d4f157d33bf6da
|
7
|
+
data.tar.gz: 62d67cde7a472be113751c2bba1464b5fa570264fdae4934f88b954c289e603f94ebe6d1cfd0b0d3f30ac834345c3d5ca6ae0d9872377f52ed32ce5e3e5599f8
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
# dry-config
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/elastic-beanstalk.svg)](https://rubygems.org/gems/dry-config)
|
3
|
+
[![Build Status](https://travis-ci.org/rosskevin/sms-spec.svg)](https://travis-ci.org/alienfast/dry-config)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/rosskevin/sms-spec/badges/gpa.svg)](https://codeclimate.com/github/alienfast/dry-config)
|
2
5
|
|
3
|
-
|
6
|
+
|
7
|
+
Simple base class for DRY inheritable configurations that can be loaded from multiple overriding yml files.
|
4
8
|
|
5
9
|
Sample uses include environment based e.g. `development, test, production` and multi-domain white label configurations.
|
6
10
|
|
7
11
|
A programmatic seed configuration may be specified, as well as the ability to load one to many overriding configuration files.
|
12
|
+
|
13
|
+
Results may be re-written to an output file, useful for compiling static files for other processes such as `docker-compose.yml`.
|
8
14
|
|
9
15
|
The [elastic-beanstalk gem](https://github.com/alienfast/elastic-beanstalk) is a real world example that utilized `Dry::Config::Base`.
|
10
16
|
|
@@ -22,7 +28,8 @@ Or install it yourself as:
|
|
22
28
|
|
23
29
|
$ gem install dry-config
|
24
30
|
|
25
|
-
##
|
31
|
+
## Example 1: environment inheritance
|
32
|
+
The following example shows a single file where environments will override base level settings. `dry-config` is useful for simple, to multi-file, multi-environmet settings.
|
26
33
|
|
27
34
|
### Step 1. Write a config class
|
28
35
|
Note this sample uses the `Singleton` pattern, which is useful but not required.
|
@@ -105,12 +112,15 @@ config.title # Acme Holdings, LLC
|
|
105
112
|
config.strategy # :blue_green,
|
106
113
|
config.options[:'aws:autoscaling:launchconfiguration'][:InstanceType] # t1.large
|
107
114
|
```
|
108
|
-
|
109
|
-
## Other options
|
110
|
-
- Expected environments are `[:development, :test, :staging, :production]`. Expand or redefine `@potential_environments` these by overriding the `#initialize` or doing so in your optional `#seed_default_configuration`. This is used in the used in the overlay pruning process to prevent unused branches of configuration from showing up in the resolved configuration.
|
111
|
-
- An optional `#seed_default_configuration` allows you to provide a configuration base
|
112
|
-
- `#clear` will restore to the seed configuration, allowing you to `#load!` new settings.
|
115
|
+
## Example 2: Multi-file White Label sample
|
113
116
|
|
117
|
+
```ruby
|
118
|
+
class WhiteLabelConfig < Dry::Config::Base
|
119
|
+
end
|
120
|
+
|
121
|
+
config = WhiteLabelConfig.new
|
122
|
+
config.load!(nil, 'base.yml', 'acme.com.yml', 'scheduling.acme.com.yml')
|
123
|
+
```
|
114
124
|
## ENV Interpolation/substitution/expansion
|
115
125
|
|
116
126
|
ENV variable substitution is supported and enabled by default. It may be disabled by initializing with `{interpolation: false}`.
|
@@ -126,17 +136,12 @@ interpolations:
|
|
126
136
|
# mixed example
|
127
137
|
- ~/docker/mysql/${PROJECT_NAME}-${BUILD}:/var/lib/mysql:rw
|
128
138
|
```
|
139
|
+
|
140
|
+
## Options
|
141
|
+
- Expected environments are `[:development, :test, :staging, :production]`. Expand or redefine `@potential_environments` these by overriding the `#initialize` or doing so in your optional `#seed_default_configuration`. This is used in the used in the overlay pruning process to prevent unused branches of configuration from showing up in the resolved configuration.
|
142
|
+
- An optional `#seed_default_configuration` allows you to provide a configuration base
|
143
|
+
- `#clear` will restore to the seed configuration, allowing you to `#load!` new settings.
|
129
144
|
|
130
|
-
## White Label sample
|
131
|
-
|
132
|
-
```ruby
|
133
|
-
class WhiteLabelConfig < Dry::Config::Base
|
134
|
-
end
|
135
|
-
|
136
|
-
config = WhiteLabelConfig.new
|
137
|
-
config.load!(nil, 'base.yml', 'acme.com.yml', 'scheduling.acme.com.yml')
|
138
|
-
```
|
139
|
-
|
140
145
|
## Contributing
|
141
146
|
|
142
147
|
1. Fork it
|
data/lib/dry/config/base.rb
CHANGED
@@ -18,7 +18,7 @@ module Dry
|
|
18
18
|
attr_reader :filenames
|
19
19
|
|
20
20
|
def initialize(options = {})
|
21
|
-
@options = {interpolation: true}.merge options
|
21
|
+
@options = {interpolation: true, symbolize: true}.merge options
|
22
22
|
|
23
23
|
seed_default_configuration
|
24
24
|
|
@@ -105,7 +105,7 @@ module Dry
|
|
105
105
|
config = Psych.load(contents, filename)
|
106
106
|
|
107
107
|
raise "Failed to load #{filename}" if config.nil?
|
108
|
-
config.deep_symbolize
|
108
|
+
config.deep_symbolize if @options[:symbolize]
|
109
109
|
end
|
110
110
|
|
111
111
|
def write_yaml_file(filename)
|
data/lib/dry/config/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Ross
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- ".rspec"
|
64
64
|
- ".ruby-gemset"
|
65
65
|
- ".ruby-version"
|
66
|
+
- ".travis.yml"
|
66
67
|
- Gemfile
|
67
68
|
- LICENSE.txt
|
68
69
|
- README.md
|