@@ -66,6 +66,16 module Redmine | |||||
66 | @config[name] |
|
66 | @config[name] | |
67 | end |
|
67 | end | |
68 |
|
68 | |||
|
69 | # Yields a block with the specified hash configuration settings | |||
|
70 | def with(settings) | |||
|
71 | settings.stringify_keys! | |||
|
72 | load unless @config | |||
|
73 | was = settings.keys.inject({}) {|h,v| h[v] = @config[v]; h} | |||
|
74 | @config.merge! settings | |||
|
75 | yield if block_given? | |||
|
76 | @config.merge! was | |||
|
77 | end | |||
|
78 | ||||
69 | private |
|
79 | private | |
70 |
|
80 | |||
71 | def load_from_yaml(filename, env) |
|
81 | def load_from_yaml(filename, env) |
@@ -41,6 +41,15 class Redmine::ConfigurationTest < ActiveSupport::TestCase | |||||
41 | assert_equal 'bar', @conf['somesetting'] |
|
41 | assert_equal 'bar', @conf['somesetting'] | |
42 | end |
|
42 | end | |
43 |
|
43 | |||
|
44 | def test_with | |||
|
45 | load_conf('default.yml', 'test') | |||
|
46 | assert_equal 'foo', @conf['somesetting'] | |||
|
47 | @conf.with 'somesetting' => 'bar' do | |||
|
48 | assert_equal 'bar', @conf['somesetting'] | |||
|
49 | end | |||
|
50 | assert_equal 'foo', @conf['somesetting'] | |||
|
51 | end | |||
|
52 | ||||
44 | private |
|
53 | private | |
45 |
|
54 | |||
46 | def load_conf(file, env) |
|
55 | def load_conf(file, env) |
General Comments 0
You need to be logged in to leave comments.
Login now