rails_simple_config 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/README.md
CHANGED
@@ -13,12 +13,20 @@ Add RailsSimpleConfig to your Gemfile:
|
|
13
13
|
Run the generator to create the default configuration file:
|
14
14
|
|
15
15
|
rails generate rails_simple_config:install
|
16
|
+
|
17
|
+
The generator will create 3 files in your Rails root directory; namely `secrets.yml`, `secrets.example.yml` and `config.yml`.
|
18
|
+
|
19
|
+
The `secrets.yml` should _not_ be committed to source control, and it should be used to keep settings which are
|
20
|
+
considered a secret; such as your Amazon credentials. These settings will be loaded first. The `secrets.example.yml` filename
|
21
|
+
can be added to source control and kept as an _example_ of the settings contained in the `secrets.yml` file.
|
22
|
+
|
23
|
+
The `config.yml` file should contain all other configuration settings.
|
16
24
|
|
17
25
|
## Usage
|
18
26
|
|
19
27
|
### Define configuration settings
|
20
28
|
|
21
|
-
Define your settings in the generated `config.yml` file, found in your Rails root directory.
|
29
|
+
Define your settings in the generated `secrets.yml` and `config.yml` file, found in your Rails root directory.
|
22
30
|
|
23
31
|
The file contains sections for the development, test and production Rails environments, and a shared section.
|
24
32
|
It can also contain ERB code so that more advanced configuration scenarios can be supported.
|
@@ -95,6 +103,9 @@ For example, the `SimpleConfig.no_reply_email` will be accessible to the [devise
|
|
95
103
|
|
96
104
|
`SimpleConfig` inherits from [ActiveSupport::OrderedOptions](http://api.rubyonrails.org/classes/ActiveSupport/OrderedOptions.html), so accessing undefined settings will always return `nil`.
|
97
105
|
|
106
|
+
In development, the configuration is reloaded upon each request, however, any configuration used within the `application.rb` filename
|
107
|
+
or any initializers will _not_ be automatically reloaded, without having to restart your web server.
|
108
|
+
|
98
109
|
## Project Info
|
99
110
|
|
100
111
|
RailsSimpleConfig is hosted on [Github](http://github.com/virtualstaticvoid/rails_simple_config), where your contributions, forkings, comments and feedback are greatly welcomed.
|
data/lib/rails_simple_config.rb
CHANGED
@@ -10,7 +10,18 @@ module SimpleConfig
|
|
10
10
|
|
11
11
|
def load!
|
12
12
|
puts "Loading configuration for '#{Rails.env}'."
|
13
|
-
|
13
|
+
load(Rails.root + 'secrets.yml')
|
14
|
+
load(Rails.root + 'config.yml')
|
15
|
+
end
|
16
|
+
|
17
|
+
def reload!
|
18
|
+
clear
|
19
|
+
load!
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def load(filename)
|
14
25
|
if File.exist?(filename)
|
15
26
|
configuration = YAML.load(ERB.new(File.read(filename)).result)[Rails.env]
|
16
27
|
configuration.each do |key, value|
|
@@ -18,11 +29,6 @@ module SimpleConfig
|
|
18
29
|
end if configuration
|
19
30
|
end
|
20
31
|
end
|
21
|
-
|
22
|
-
def reload!
|
23
|
-
clear
|
24
|
-
load!
|
25
|
-
end
|
26
32
|
|
27
33
|
end
|
28
34
|
|
@@ -32,6 +38,10 @@ module SimpleConfig
|
|
32
38
|
@@config.load!
|
33
39
|
end
|
34
40
|
|
41
|
+
def self.reload!
|
42
|
+
@@config.reload!
|
43
|
+
end
|
44
|
+
|
35
45
|
def self.method_missing(method, *args)
|
36
46
|
@@config.__send__(method, *args)
|
37
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_simple_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-09-09 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: A simple YAML based configuration for Ruby on Rails 3+, which supports
|
15
15
|
shared settings, ERB and more.
|