rubber 2.1.1 → 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +9 -1
- data/lib/rubber/environment.rb +8 -3
- data/lib/rubber/version.rb +1 -1
- data/templates/base/config/rubber/rubber.yml +1 -1
- data/test/environment_test.rb +13 -0
- data/test/fixtures/basic/rubber.yml +5 -1
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
2.1.2 (10/05/2012)
|
2
|
+
------------------
|
3
|
+
|
4
|
+
New Features:
|
5
|
+
============
|
6
|
+
|
7
|
+
[core] Allowing marking of a config variable as overriding the ones that come before it, so that non-scalar values (lists/maps) get overridden instead of combined <3d66fc8>
|
8
|
+
[core] Allow erb in rubber*.yml <60e6394>
|
9
|
+
|
1
10
|
2.1.1 (10/02/2012)
|
2
11
|
------------------
|
3
12
|
|
@@ -17,7 +26,6 @@ Improvements:
|
|
17
26
|
[jenkins] Added support for backing up Jenkins. <a44162d>
|
18
27
|
[jenkins] Fixed Jenkins config. <bbaa6f4>
|
19
28
|
[jenkins] Make sure we have the header module enabled for the config to work. <93d03d8>
|
20
|
-
[jenkins] The module is "headers", not "header". <4057334>
|
21
29
|
[passenger] Bumped rubber from 3.0.12 to 3.0.15. <bc408f1>
|
22
30
|
[passenger_nginx] Updated Nginx config to improve performance of asset pipeline. <7184327>
|
23
31
|
[torquebox] Updated TorqueBox config from 2.0.3 to 2.1.0. <13a0268>
|
data/lib/rubber/environment.rb
CHANGED
@@ -36,7 +36,7 @@ module Rubber
|
|
36
36
|
Rubber.logger.debug{"Reading rubber configuration from #{file}"}
|
37
37
|
if File.exist?(file)
|
38
38
|
begin
|
39
|
-
@items = Environment.combine(@items, YAML.
|
39
|
+
@items = Environment.combine(@items, YAML::load(ERB.new(IO.read(file)).result) || {})
|
40
40
|
rescue Exception => e
|
41
41
|
Rubber.logger.error{"Unable to read rubber configuration from #{file}"}
|
42
42
|
raise
|
@@ -56,7 +56,7 @@ module Rubber
|
|
56
56
|
|
57
57
|
# all the roles known about in yml files
|
58
58
|
Dir["#{@config_root}/rubber*.yml"].each do |yml|
|
59
|
-
rubber_yml = YAML
|
59
|
+
rubber_yml = YAML::load(ERB.new(IO.read(yml)).result) rescue {}
|
60
60
|
roles.concat(rubber_yml['roles'].keys) rescue nil
|
61
61
|
roles.concat(rubber_yml['role_dependencies'].keys) rescue nil
|
62
62
|
roles.concat(rubber_yml['role_dependencies'].values) rescue nil
|
@@ -89,7 +89,12 @@ module Rubber
|
|
89
89
|
if old.is_a?(Hash) && new.is_a?(Hash)
|
90
90
|
value = old.clone
|
91
91
|
new.each do |nk, nv|
|
92
|
-
|
92
|
+
if nk[0] == '^'
|
93
|
+
nk = nk[1..-1]
|
94
|
+
value[nk] = combine(nil, nv)
|
95
|
+
else
|
96
|
+
value[nk] = combine(value[nk], nv)
|
97
|
+
end
|
93
98
|
end
|
94
99
|
elsif old.is_a?(Array) && new.is_a?(Array)
|
95
100
|
value = old | new
|
data/lib/rubber/version.rb
CHANGED
@@ -298,7 +298,7 @@ stop_on_error_cmd: "function error_exit { exit 99; }; trap error_exit ERR"
|
|
298
298
|
|
299
299
|
# OPTIONAL: You can also define your own variables here for use when
|
300
300
|
# transforming config files, and they will be available in your config
|
301
|
-
# templates as
|
301
|
+
# templates as <%%= rubber_env.var_name %>
|
302
302
|
#
|
303
303
|
# var_name: var_value
|
304
304
|
|
data/test/environment_test.rb
CHANGED
@@ -75,6 +75,13 @@ class EnvironmentTest < Test::Unit::TestCase
|
|
75
75
|
assert_equal({1 => {1 => "1", 2 => "2"}}, env.combine({1 => {1 => "1"}}, {1 => {2 => "2"}}), "Maps should be unioned recursively when combined")
|
76
76
|
end
|
77
77
|
|
78
|
+
def test_combine_override
|
79
|
+
env = Rubber::Configuration::Environment
|
80
|
+
assert_equal({"x" => 4, "y" => 2, "z" => 3}, env.combine({"x" => 1, "y" => 2}, {"^x" => 4, "z" => 3}), "scalars should override")
|
81
|
+
assert_equal({"x" => [3, 4]}, env.combine({"x" => [1, 2]}, {"^x" => [3, 4]}), "lists should override")
|
82
|
+
assert_equal({"x" => {"y" => [3, 4]}}, env.combine({"x" => {"y" => [1, 2]}}, {"x" => {"^y" => [3, 4]}}), "Maps should override recursively")
|
83
|
+
end
|
84
|
+
|
78
85
|
def test_expansion
|
79
86
|
env = Rubber::Configuration::Environment.new("#{File.dirname(__FILE__)}/fixtures/expansion", 'test')
|
80
87
|
e = env.bind()
|
@@ -152,4 +159,10 @@ class EnvironmentTest < Test::Unit::TestCase
|
|
152
159
|
assert_equal "50.1.1.1", e['var1']
|
153
160
|
end
|
154
161
|
|
162
|
+
def test_erb_yml
|
163
|
+
env = Rubber::Configuration::Environment.new("#{File.dirname(__FILE__)}/fixtures/basic", 'test')
|
164
|
+
e = env.bind()
|
165
|
+
assert_equal [0, 1, 2], e["erb_var"], 'should be able to generate env using erb'
|
166
|
+
end
|
167
|
+
|
155
168
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-10-
|
13
|
+
date: 2012-10-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capistrano
|
@@ -664,7 +664,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
664
664
|
version: '0'
|
665
665
|
segments:
|
666
666
|
- 0
|
667
|
-
hash:
|
667
|
+
hash: -1263821507028843624
|
668
668
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
669
669
|
none: false
|
670
670
|
requirements:
|
@@ -673,7 +673,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
673
673
|
version: '0'
|
674
674
|
segments:
|
675
675
|
- 0
|
676
|
-
hash:
|
676
|
+
hash: -1263821507028843624
|
677
677
|
requirements: []
|
678
678
|
rubyforge_project: rubber
|
679
679
|
rubygems_version: 1.8.24
|