greased-rails 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +11 -0
- data/lib/greased/applicator.rb +21 -4
- data/lib/greased/rails/engine.rb +1 -1
- data/lib/greased/rails/version.rb +1 -1
- data/templates/greased_partial.yml +30 -0
- data/templates/greased_settings.yml +6 -0
- data/templates/greased_variables.yml +6 -0
- metadata +3 -2
data/README.md
CHANGED
@@ -38,6 +38,17 @@ If you don't create your own file, Greased will use the file in the "templates"
|
|
38
38
|
* config/greased_settings.yml
|
39
39
|
* config/greased/settings.yml
|
40
40
|
|
41
|
+
#### Partial Settings - greased_partial.yml
|
42
|
+
|
43
|
+
This is a YAML serialization of settings you want to override in greased_settings.yml. This is useful if you let Greased load the default template and only want to override a few settings without copying the whole template file over.
|
44
|
+
|
45
|
+
Save your file to one of the following locations:
|
46
|
+
|
47
|
+
* greased_partial.yml (in the root of your Rails application)
|
48
|
+
* greased/partial.yml
|
49
|
+
* config/greased_partial.yml
|
50
|
+
* config/greased/partial.yml
|
51
|
+
|
41
52
|
### Environment Variables - greased_variables.yml
|
42
53
|
|
43
54
|
This is a YAML serialization of your environment variables. You can easily share environment variables across environments.
|
data/lib/greased/applicator.rb
CHANGED
@@ -5,10 +5,18 @@ require 'active_support/core_ext/hash/deep_merge'
|
|
5
5
|
module Greased
|
6
6
|
class Applicator
|
7
7
|
|
8
|
+
# settings applied to application environment
|
8
9
|
APP_SETTINGS_FILENAME_BASE = "settings.yml"
|
9
10
|
APP_SETTINGS_FILENAME = "greased_#{APP_SETTINGS_FILENAME_BASE}"
|
11
|
+
# additional settings applied to application environment
|
12
|
+
# after default Greased (template) settings are applied
|
13
|
+
# or custom settings file is applied.
|
14
|
+
APP_PATCH_FILENAME_BASE = "partial.yml"
|
15
|
+
APP_PATCH_FILENAME = "greased_#{APP_PATCH_FILENAME_BASE}"
|
16
|
+
# environment variables to load into ENV
|
10
17
|
ENV_VARS_FILENAME_BASE = "variables.yml"
|
11
18
|
ENV_VARS_FILENAME = "greased_#{ENV_VARS_FILENAME_BASE}"
|
19
|
+
# default Greased template with application settings
|
12
20
|
DEFAULT_SETTINGS_FILE = Pathname.new(File.join(File.dirname(__FILE__), '..', '..', 'templates', APP_SETTINGS_FILENAME)).realpath
|
13
21
|
DEFAULT_ENV = "development"
|
14
22
|
|
@@ -36,6 +44,12 @@ module Greased
|
|
36
44
|
File.join(::Rails.root, "config", "greased", APP_SETTINGS_FILENAME_BASE),
|
37
45
|
DEFAULT_SETTINGS_FILE
|
38
46
|
],
|
47
|
+
:partial_filename => [
|
48
|
+
File.join(::Rails.root, APP_PATCH_FILENAME),
|
49
|
+
File.join(::Rails.root, "greased", APP_PATCH_FILENAME_BASE),
|
50
|
+
File.join(::Rails.root, "config", APP_PATCH_FILENAME),
|
51
|
+
File.join(::Rails.root, "config", "greased", APP_PATCH_FILENAME_BASE)
|
52
|
+
],
|
39
53
|
:env_filename => [
|
40
54
|
File.join(::Rails.root, ENV_VARS_FILENAME),
|
41
55
|
File.join(::Rails.root, "greased", ENV_VARS_FILENAME_BASE),
|
@@ -89,7 +103,7 @@ module Greased
|
|
89
103
|
def variables(options = {})
|
90
104
|
options = @options.merge(options)
|
91
105
|
groups = Array.wrap(options[:groups])
|
92
|
-
grouped_variables = load_settings(
|
106
|
+
grouped_variables = load_settings(options[:env_filename])
|
93
107
|
|
94
108
|
groups.inject({}) do |all, group|
|
95
109
|
all.merge grouped_variables.fetch(options[:env], {}).fetch(group, {})
|
@@ -97,8 +111,12 @@ module Greased
|
|
97
111
|
end
|
98
112
|
|
99
113
|
def settings(options = {})
|
100
|
-
options = @options.merge(options)
|
101
|
-
|
114
|
+
options = @options.merge(:env => env).merge(options)
|
115
|
+
# get settings for application environment
|
116
|
+
config = load_settings(options[:app_filename], options).fetch(options[:env], {})
|
117
|
+
# add partial settings for environment
|
118
|
+
config.deep_merge! load_settings(options[:partial_filename], options).fetch(options[:env], {})
|
119
|
+
|
102
120
|
Settings.new(app, env, config)
|
103
121
|
end
|
104
122
|
|
@@ -122,6 +140,5 @@ module Greased
|
|
122
140
|
all || {}
|
123
141
|
end
|
124
142
|
|
125
|
-
|
126
143
|
end
|
127
144
|
end
|
data/lib/greased/rails/engine.rb
CHANGED
@@ -26,7 +26,7 @@ module Greased
|
|
26
26
|
|
27
27
|
options = Applicator.rails_options.merge(:app => application)
|
28
28
|
applicator = Applicator.new(options)
|
29
|
-
variables = applicator.variables
|
29
|
+
variables = applicator.variables.except("RACK_ENV", "RAILS_ENV")
|
30
30
|
|
31
31
|
variables.each do |key, value|
|
32
32
|
ENV[key.to_s] = value.to_s
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#
|
2
|
+
# Create a file like this in your application if you want to use the default
|
3
|
+
# greased_settings.yml template in your application and only specify a couple changes
|
4
|
+
# without creating a whole new greased_settings.yml file.
|
5
|
+
#
|
6
|
+
# The settings in this file will be applied after the greased_settings.yml file
|
7
|
+
# is applied to the application environment.
|
8
|
+
#
|
9
|
+
# *** NOTE ***
|
10
|
+
#
|
11
|
+
# For the "defaults" section to have any effect, you have to specify the environment
|
12
|
+
# that should inherit from the defaults when loading these settings. Otherwise
|
13
|
+
# the settings will be ignored rather than be applied to all environments.
|
14
|
+
#
|
15
|
+
|
16
|
+
defaults: &defaults
|
17
|
+
config:
|
18
|
+
# suppose you want to use all defaults in greased_settings.yml
|
19
|
+
# and only change the SSL settings for all environments
|
20
|
+
force_ssl: true
|
21
|
+
|
22
|
+
development:
|
23
|
+
<<: *defaults
|
24
|
+
|
25
|
+
staging:
|
26
|
+
<<: *defaults
|
27
|
+
|
28
|
+
production:
|
29
|
+
<<: *defaults
|
30
|
+
|
@@ -1,3 +1,9 @@
|
|
1
|
+
#
|
2
|
+
# Create a file like this in your application to specify your own default settings.
|
3
|
+
# By default, this template file will be loaded into your environment unless you
|
4
|
+
# create your own file. (You could create a blank file so no changes are loaded.)
|
5
|
+
#
|
6
|
+
|
1
7
|
defaults: &defaults
|
2
8
|
config:
|
3
9
|
force_ssl: false
|
@@ -1,3 +1,9 @@
|
|
1
|
+
#
|
2
|
+
# This is an example of how you could organize your environment variables.
|
3
|
+
# Currently only the "application" group is loaded. The "deployment" group
|
4
|
+
# may be used in Rake tasks eventually.
|
5
|
+
#
|
6
|
+
|
1
7
|
defaults: &defaults
|
2
8
|
deployment:
|
3
9
|
HEROKU_APP: my-app-name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: greased-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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: 2013-
|
12
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- lib/greased/settings.rb
|
68
68
|
- release.sh
|
69
69
|
- tasks/greased.rake
|
70
|
+
- templates/greased_partial.yml
|
70
71
|
- templates/greased_settings.yml
|
71
72
|
- templates/greased_variables.yml
|
72
73
|
homepage: http://github.com/joelvh/greased-rails
|