rconfig 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. data/ChangeLog +7 -0
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +2 -0
  4. data/Rakefile +11 -8
  5. data/doc/Array.html +184 -0
  6. data/doc/Hash.html +360 -0
  7. data/doc/NilClass.html +233 -0
  8. data/doc/RConfig.html +328 -0
  9. data/doc/RConfig/Callbacks.html +295 -0
  10. data/doc/RConfig/Cascade.html +316 -0
  11. data/doc/RConfig/Config.html +441 -0
  12. data/doc/RConfig/ConfigError.html +187 -0
  13. data/doc/RConfig/Constants.html +271 -0
  14. data/doc/RConfig/CoreMethods.html +814 -0
  15. data/doc/RConfig/DisabledLogger.html +424 -0
  16. data/doc/RConfig/Exceptions.html +266 -0
  17. data/doc/RConfig/Generators.html +186 -0
  18. data/doc/RConfig/Generators/InstallGenerator.html +233 -0
  19. data/doc/RConfig/InvalidLoadPathError.html +187 -0
  20. data/doc/RConfig/LoadPaths.html +375 -0
  21. data/doc/RConfig/Logger.html +184 -0
  22. data/doc/RConfig/PropertiesFile.html +399 -0
  23. data/doc/RConfig/Reload.html +481 -0
  24. data/doc/RConfig/Settings.html +188 -0
  25. data/doc/RConfig/Utils.html +841 -0
  26. data/doc/README_rdoc.html +331 -0
  27. data/doc/String.html +184 -0
  28. data/doc/created.rid +21 -1
  29. data/doc/index.html +423 -20
  30. data/doc/lib/generators/rconfig/install_generator_rb.html +52 -0
  31. data/doc/lib/generators/rconfig/templates/rconfig_rb.html +56 -0
  32. data/doc/lib/rconfig/callbacks_rb.html +52 -0
  33. data/doc/lib/rconfig/cascade_rb.html +52 -0
  34. data/doc/lib/rconfig/config_rb.html +61 -0
  35. data/doc/lib/rconfig/constants_rb.html +52 -0
  36. data/doc/lib/rconfig/core_ext/array_rb.html +52 -0
  37. data/doc/lib/rconfig/core_ext/hash_rb.html +61 -0
  38. data/doc/lib/rconfig/core_ext/nil_rb.html +52 -0
  39. data/doc/lib/rconfig/core_ext/string_rb.html +52 -0
  40. data/doc/lib/rconfig/core_methods_rb.html +55 -0
  41. data/doc/lib/rconfig/exceptions_rb.html +58 -0
  42. data/doc/lib/rconfig/load_paths_rb.html +52 -0
  43. data/doc/lib/rconfig/logger_rb.html +52 -0
  44. data/doc/lib/rconfig/properties_file_rb.html +93 -0
  45. data/doc/lib/rconfig/reload_rb.html +52 -0
  46. data/doc/lib/rconfig/settings_rb.html +52 -0
  47. data/doc/lib/rconfig/utils_rb.html +52 -0
  48. data/doc/lib/rconfig_rb.html +151 -0
  49. data/doc/rdoc.css +706 -0
  50. data/lib/rconfig.rb +1 -1
  51. data/lib/rconfig/load_paths.rb +2 -2
  52. data/lib/tasks/rdoc.rake +3 -4
  53. data/rconfig.gemspec +4 -2
  54. data/spec/config/erb_contents.yml +3 -0
  55. data/spec/config/props_config.conf +18 -0
  56. data/spec/config/spec.yml +17 -0
  57. data/spec/config/xml_config.xml +22 -0
  58. data/spec/config2/.gitkeep +0 -0
  59. data/spec/rconfig/load_paths_spec.rb +37 -0
  60. data/spec/rconfig/reload_spec.rb +37 -0
  61. data/spec/rconfig_spec.rb +61 -3
  62. data/spec/spec_helper.rb +12 -8
  63. metadata +82 -40
  64. data/doc/classes/ClassVariables.html +0 -111
  65. data/doc/classes/ConfigError.html +0 -120
  66. data/doc/classes/ConfigHash.html +0 -354
  67. data/doc/classes/Constants.html +0 -226
  68. data/doc/classes/Hash.html +0 -269
  69. data/doc/classes/InvalidConfigPathError.html +0 -119
  70. data/doc/classes/Object.html +0 -220
  71. data/doc/classes/PropertiesFileParser.html +0 -282
  72. data/doc/classes/RConfig.html +0 -1745
  73. data/doc/files/README_rdoc.html +0 -271
  74. data/doc/files/lib/rconfig/class_variables_rb.html +0 -107
  75. data/doc/files/lib/rconfig/config_hash_rb.html +0 -114
  76. data/doc/files/lib/rconfig/constants_rb.html +0 -101
  77. data/doc/files/lib/rconfig/core_ext/hash_rb.html +0 -114
  78. data/doc/files/lib/rconfig/core_ext/object_rb.html +0 -101
  79. data/doc/files/lib/rconfig/core_ext_rb.html +0 -114
  80. data/doc/files/lib/rconfig/exceptions_rb.html +0 -110
  81. data/doc/files/lib/rconfig/properties_file_parser_rb.html +0 -146
  82. data/doc/files/lib/rconfig/rconfig_rb.html +0 -186
  83. data/doc/files/lib/rconfig_rb.html +0 -117
  84. data/doc/fr_class_index.html +0 -35
  85. data/doc/fr_file_index.html +0 -37
  86. data/doc/fr_method_index.html +0 -75
  87. data/doc/rdoc-style.css +0 -208
  88. data/lib/tasks/gem.rake +0 -14
  89. data/lib/tasks/spec.rake +0 -25
  90. data/spec/core_ext/object_spec.rb +0 -44
data/ChangeLog CHANGED
@@ -1,3 +1,10 @@
1
+ 0.4.3
2
+ =====
3
+ * Fixed error handling in parse_load_paths
4
+ * Updated specs
5
+ * Update Rakefile and rake tasks.
6
+ * Updated Docs.
7
+
1
8
  0.4.2
2
9
  =====
3
10
  * Fixed indifferent access in Config object.
data/Gemfile CHANGED
@@ -6,4 +6,5 @@ group :development do
6
6
  gem 'rspec', '~> 2.3.0'
7
7
  gem 'bundler', '~> 1.0.0'
8
8
  gem 'jeweler', '~> 1.6.4'
9
+ gem 'i18n', '~> 0.6.0'
9
10
  end
data/Gemfile.lock CHANGED
@@ -5,6 +5,7 @@ GEM
5
5
  multi_json (~> 1.0)
6
6
  diff-lcs (1.1.3)
7
7
  git (1.2.5)
8
+ i18n (0.6.0)
8
9
  jeweler (1.6.4)
9
10
  bundler (~> 1.0)
10
11
  git (>= 1.2.5)
@@ -26,5 +27,6 @@ PLATFORMS
26
27
  DEPENDENCIES
27
28
  activesupport (~> 3.0)
28
29
  bundler (~> 1.0.0)
30
+ i18n (~> 0.6.0)
29
31
  jeweler (~> 1.6.4)
30
32
  rspec (~> 2.3.0)
data/Rakefile CHANGED
@@ -1,11 +1,14 @@
1
- #!/usr/bin/env rake
2
-
3
1
  require 'rubygems'
4
- require 'rake'
5
- require 'rake/testtask'
6
- require 'rake/rdoctask'
7
- require 'lib/rconfig'
2
+ require 'bundler'
3
+ require 'rspec/core/rake_task'
4
+
5
+ Bundler.setup
6
+ Bundler::GemHelper.install_tasks
7
+
8
+ RSpec::Core::RakeTask.new do |spec|
9
+ spec.pattern = 'spec/**/*_spec.rb'
10
+ end
8
11
 
9
-
10
- Dir['tasks/**/*.rake'].sort.each { |lib| load lib }
12
+ task :default => :spec
11
13
 
14
+ Dir['lib/tasks/**/*.rake'].sort.each { |lib| load lib }
data/doc/Array.html ADDED
@@ -0,0 +1,184 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Array</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="./js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="./js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="./index.html">Home</a>
29
+ <a href="./index.html#classes">Classes</a>
30
+ <a href="./index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="./lib/rconfig/core_ext/array_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/rconfig/core_ext/array.rb">lib/rconfig/core_ext/array.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link">Object</p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+
69
+ <!-- Included Modules -->
70
+
71
+ </div>
72
+
73
+ <div id="project-metadata">
74
+
75
+
76
+ <div id="fileindex-section" class="section project-section">
77
+ <h3 class="section-header">Files</h3>
78
+ <ul>
79
+
80
+ <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
81
+
82
+ </ul>
83
+ </div>
84
+
85
+
86
+ <div id="classindex-section" class="section project-section">
87
+ <h3 class="section-header">Class Index
88
+ <span class="search-toggle"><img src="./images/find.png"
89
+ height="16" width="16" alt="[+]"
90
+ title="show/hide quicksearch" /></span></h3>
91
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
92
+ <fieldset>
93
+ <legend>Quicksearch</legend>
94
+ <input type="text" name="quicksearch" value=""
95
+ class="quicksearch-field" />
96
+ </fieldset>
97
+ </form>
98
+
99
+ <ul class="link-list">
100
+
101
+ <li><a href="./RConfig.html">RConfig</a></li>
102
+
103
+ <li><a href="./RConfig/Callbacks.html">RConfig::Callbacks</a></li>
104
+
105
+ <li><a href="./RConfig/Cascade.html">RConfig::Cascade</a></li>
106
+
107
+ <li><a href="./RConfig/Config.html">RConfig::Config</a></li>
108
+
109
+ <li><a href="./RConfig/ConfigError.html">RConfig::ConfigError</a></li>
110
+
111
+ <li><a href="./RConfig/Constants.html">RConfig::Constants</a></li>
112
+
113
+ <li><a href="./RConfig/CoreMethods.html">RConfig::CoreMethods</a></li>
114
+
115
+ <li><a href="./RConfig/DisabledLogger.html">RConfig::DisabledLogger</a></li>
116
+
117
+ <li><a href="./RConfig/Exceptions.html">RConfig::Exceptions</a></li>
118
+
119
+ <li><a href="./RConfig/Generators.html">RConfig::Generators</a></li>
120
+
121
+ <li><a href="./RConfig/Generators/InstallGenerator.html">RConfig::Generators::InstallGenerator</a></li>
122
+
123
+ <li><a href="./RConfig/InvalidLoadPathError.html">RConfig::InvalidLoadPathError</a></li>
124
+
125
+ <li><a href="./RConfig/LoadPaths.html">RConfig::LoadPaths</a></li>
126
+
127
+ <li><a href="./RConfig/PropertiesFile.html">RConfig::PropertiesFile</a></li>
128
+
129
+ <li><a href="./RConfig/Reload.html">RConfig::Reload</a></li>
130
+
131
+ <li><a href="./RConfig/Settings.html">RConfig::Settings</a></li>
132
+
133
+ <li><a href="./RConfig/Utils.html">RConfig::Utils</a></li>
134
+
135
+ <li><a href="./Array.html">Array</a></li>
136
+
137
+ <li><a href="./Hash.html">Hash</a></li>
138
+
139
+ <li><a href="./NilClass.html">NilClass</a></li>
140
+
141
+ <li><a href="./String.html">String</a></li>
142
+
143
+ </ul>
144
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
145
+ </div>
146
+
147
+
148
+ </div>
149
+ </div>
150
+
151
+ <div id="documentation">
152
+ <h1 class="class">Array</h1>
153
+
154
+ <div id="description">
155
+
156
+ </div>
157
+
158
+ <!-- Constants -->
159
+
160
+
161
+ <!-- Attributes -->
162
+
163
+
164
+ <!-- Methods -->
165
+
166
+
167
+ </div>
168
+
169
+
170
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
171
+
172
+ <p>Disabled; run with --debug to generate this.</p>
173
+
174
+ </div>
175
+
176
+ <div id="validator-badges">
177
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
178
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
179
+ Rdoc Generator</a> 1.1.6</small>.</p>
180
+ </div>
181
+
182
+ </body>
183
+ </html>
184
+
data/doc/Hash.html ADDED
@@ -0,0 +1,360 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Hash</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="./js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="./js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="./index.html">Home</a>
29
+ <a href="./index.html#classes">Classes</a>
30
+ <a href="./index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="./lib/rconfig/core_ext/hash_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/rconfig/core_ext/hash.rb">lib/rconfig/core_ext/hash.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link">Object</p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-i-weave">#weave</a></li>
73
+
74
+ <li><a href="#method-i-weave%21">#weave!</a></li>
75
+
76
+ </ul>
77
+ </div>
78
+
79
+
80
+ <!-- Included Modules -->
81
+
82
+ </div>
83
+
84
+ <div id="project-metadata">
85
+
86
+
87
+ <div id="fileindex-section" class="section project-section">
88
+ <h3 class="section-header">Files</h3>
89
+ <ul>
90
+
91
+ <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
92
+
93
+ </ul>
94
+ </div>
95
+
96
+
97
+ <div id="classindex-section" class="section project-section">
98
+ <h3 class="section-header">Class Index
99
+ <span class="search-toggle"><img src="./images/find.png"
100
+ height="16" width="16" alt="[+]"
101
+ title="show/hide quicksearch" /></span></h3>
102
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
103
+ <fieldset>
104
+ <legend>Quicksearch</legend>
105
+ <input type="text" name="quicksearch" value=""
106
+ class="quicksearch-field" />
107
+ </fieldset>
108
+ </form>
109
+
110
+ <ul class="link-list">
111
+
112
+ <li><a href="./RConfig.html">RConfig</a></li>
113
+
114
+ <li><a href="./RConfig/Callbacks.html">RConfig::Callbacks</a></li>
115
+
116
+ <li><a href="./RConfig/Cascade.html">RConfig::Cascade</a></li>
117
+
118
+ <li><a href="./RConfig/Config.html">RConfig::Config</a></li>
119
+
120
+ <li><a href="./RConfig/ConfigError.html">RConfig::ConfigError</a></li>
121
+
122
+ <li><a href="./RConfig/Constants.html">RConfig::Constants</a></li>
123
+
124
+ <li><a href="./RConfig/CoreMethods.html">RConfig::CoreMethods</a></li>
125
+
126
+ <li><a href="./RConfig/DisabledLogger.html">RConfig::DisabledLogger</a></li>
127
+
128
+ <li><a href="./RConfig/Exceptions.html">RConfig::Exceptions</a></li>
129
+
130
+ <li><a href="./RConfig/Generators.html">RConfig::Generators</a></li>
131
+
132
+ <li><a href="./RConfig/Generators/InstallGenerator.html">RConfig::Generators::InstallGenerator</a></li>
133
+
134
+ <li><a href="./RConfig/InvalidLoadPathError.html">RConfig::InvalidLoadPathError</a></li>
135
+
136
+ <li><a href="./RConfig/LoadPaths.html">RConfig::LoadPaths</a></li>
137
+
138
+ <li><a href="./RConfig/PropertiesFile.html">RConfig::PropertiesFile</a></li>
139
+
140
+ <li><a href="./RConfig/Reload.html">RConfig::Reload</a></li>
141
+
142
+ <li><a href="./RConfig/Settings.html">RConfig::Settings</a></li>
143
+
144
+ <li><a href="./RConfig/Utils.html">RConfig::Utils</a></li>
145
+
146
+ <li><a href="./Array.html">Array</a></li>
147
+
148
+ <li><a href="./Hash.html">Hash</a></li>
149
+
150
+ <li><a href="./NilClass.html">NilClass</a></li>
151
+
152
+ <li><a href="./String.html">String</a></li>
153
+
154
+ </ul>
155
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
156
+ </div>
157
+
158
+
159
+ </div>
160
+ </div>
161
+
162
+ <div id="documentation">
163
+ <h1 class="class">Hash</h1>
164
+
165
+ <div id="description">
166
+ <p>
167
+ source: <a
168
+ href="http://rubyforge.org/projects/facets/">rubyforge.org/projects/facets/</a>
169
+ version: 1.7.46 license: Ruby License NOTE: remove this method if the
170
+ Facets gem is installed. BUG: weave is destructive to values in the source
171
+ hash that are arrays!
172
+ </p>
173
+ <pre>
174
+ (this is acceptable for RConfig's use as the basis for weave!)</pre>
175
+
176
+ </div>
177
+
178
+ <!-- Constants -->
179
+
180
+
181
+ <!-- Attributes -->
182
+
183
+
184
+ <!-- Methods -->
185
+
186
+ <div id="public-instance-method-details" class="method-section section">
187
+ <h3 class="section-header">Public Instance Methods</h3>
188
+
189
+
190
+ <div id="weave-method" class="method-detail ">
191
+ <a name="method-i-weave"></a>
192
+
193
+ <div class="method-heading">
194
+
195
+ <span class="method-name">weave</span><span
196
+ class="method-args">(other_hash, clobber=false)</span>
197
+ <span class="method-click-advice">click to toggle source</span>
198
+
199
+ </div>
200
+
201
+ <div class="method-description">
202
+
203
+ <p>
204
+ Weaves the contents of two hashes producing a new hash.
205
+ </p>
206
+
207
+
208
+
209
+ <div class="method-source-code"
210
+ id="weave-source">
211
+ <pre>
212
+ <span class="ruby-comment cmt"># File lib/rconfig/core_ext/hash.rb, line 14</span>
213
+ 14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weave</span>(<span class="ruby-identifier">other_hash</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">false</span>)
214
+ 15: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">other_hash</span>
215
+ 16: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">other_hash</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
216
+ 17: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;RConfig: (Hash#weave) expected &lt;Hash&gt;, but was &lt;#{other_hash.class}&gt;&quot;</span>
217
+ 18: <span class="ruby-keyword kw">end</span>
218
+ 19:
219
+ 20: <span class="ruby-identifier">self_dup</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span> <span class="ruby-comment cmt"># self.clone does not remove freeze!</span>
220
+ 21:
221
+ 22: <span class="ruby-identifier">other_hash</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">other_node</span><span class="ruby-operator">|</span>
222
+ 23:
223
+ 24: <span class="ruby-identifier">self_dup</span>[<span class="ruby-identifier">key</span>] =
224
+ 25:
225
+ 26: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">self_node</span> = <span class="ruby-identifier">self_dup</span>[<span class="ruby-identifier">key</span>]
226
+ 27:
227
+ 28: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">self_node</span>
228
+ 29: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
229
+ 30:
230
+ 31: <span class="ruby-comment cmt"># hash1, hash2 =&gt; hash3 (recursive +)</span>
231
+ 32: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other_node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
232
+ 33:
233
+ 34: <span class="ruby-identifier">self_node</span>.<span class="ruby-identifier">weave</span>(<span class="ruby-identifier">other_node</span>, <span class="ruby-identifier">clobber</span>)
234
+ 35:
235
+ 36: <span class="ruby-comment cmt"># hash, array =&gt; error (Can't weave'em, must clobber.)</span>
236
+ 37: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">other_node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">clobber</span>
237
+ 38:
238
+ 39: <span class="ruby-identifier">raise</span>(<span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;RConfig: (Hash#weave) Can't weave Hash and Array&quot;</span>)
239
+ 40:
240
+ 41: <span class="ruby-comment cmt"># hash, array =&gt; hash[key] = array</span>
241
+ 42: <span class="ruby-comment cmt"># hash, value =&gt; hash[key] = value</span>
242
+ 43: <span class="ruby-keyword kw">else</span>
243
+ 44: <span class="ruby-identifier">other_node</span>
244
+ 45: <span class="ruby-keyword kw">end</span>
245
+ 46:
246
+ 47: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
247
+ 48:
248
+ 49: <span class="ruby-comment cmt"># array, hash =&gt; array &lt;&lt; hash</span>
249
+ 50: <span class="ruby-comment cmt"># array1, array2 =&gt; array1 + array2</span>
250
+ 51: <span class="ruby-comment cmt"># array, value =&gt; array &lt;&lt; value</span>
251
+ 52: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">clobber</span>
252
+ 53: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">other_node</span>
253
+ 54: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
254
+ 55: <span class="ruby-identifier">self_node</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">other_node</span>
255
+ 56: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
256
+ 57: <span class="ruby-identifier">self_node</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">other_node</span>
257
+ 58: <span class="ruby-keyword kw">else</span>
258
+ 59: <span class="ruby-identifier">self_node</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">other_node</span>
259
+ 60: <span class="ruby-keyword kw">end</span>
260
+ 61:
261
+ 62: <span class="ruby-comment cmt"># array, hash =&gt; hash</span>
262
+ 63: <span class="ruby-comment cmt"># array1, array2 =&gt; array2</span>
263
+ 64: <span class="ruby-comment cmt"># array, value =&gt; value</span>
264
+ 65: <span class="ruby-keyword kw">else</span>
265
+ 66: <span class="ruby-identifier">other_node</span>
266
+ 67: <span class="ruby-keyword kw">end</span>
267
+ 68:
268
+ 69: <span class="ruby-keyword kw">else</span>
269
+ 70:
270
+ 71: <span class="ruby-comment cmt"># value, array =&gt; array.unshift(value)</span>
271
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other_node</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">clobber</span>
272
+ 73: <span class="ruby-identifier">other_node</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">self_node</span>)
273
+ 74:
274
+ 75: <span class="ruby-comment cmt"># value1, value2 =&gt; value2</span>
275
+ 76: <span class="ruby-keyword kw">else</span>
276
+ 77: <span class="ruby-identifier">other_node</span>
277
+ 78: <span class="ruby-keyword kw">end</span>
278
+ 79:
279
+ 80: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># case self_node</span>
280
+ 81:
281
+ 82: <span class="ruby-comment cmt"># Target hash didn't have a node matching the key,</span>
282
+ 83: <span class="ruby-comment cmt"># so just add it from the source hash.</span>
283
+ 84: <span class="ruby-comment cmt"># !self_dup.has_key?(key) =&gt; self_dup.add(key, other_node)</span>
284
+ 85: <span class="ruby-keyword kw">else</span>
285
+ 86: <span class="ruby-identifier">other_node</span>
286
+ 87: <span class="ruby-keyword kw">end</span>
287
+ 88:
288
+ 89: } <span class="ruby-comment cmt"># other_hash.each</span>
289
+ 90:
290
+ 91: <span class="ruby-identifier">self_dup</span> <span class="ruby-comment cmt"># return new weaved hash</span>
291
+ 92: <span class="ruby-keyword kw">end</span></pre>
292
+ </div>
293
+
294
+ </div>
295
+
296
+
297
+
298
+
299
+ </div>
300
+
301
+
302
+ <div id="weave--method" class="method-detail ">
303
+ <a name="method-i-weave%21"></a>
304
+
305
+ <div class="method-heading">
306
+
307
+ <span class="method-name">weave!</span><span
308
+ class="method-args">(other_hash, clobber=false)</span>
309
+ <span class="method-click-advice">click to toggle source</span>
310
+
311
+ </div>
312
+
313
+ <div class="method-description">
314
+
315
+ <p>
316
+ Same as self.weave(other_hash, dont_clobber) except that it weaves other
317
+ hash to itself, rather than create a new hash.
318
+ </p>
319
+
320
+
321
+
322
+ <div class="method-source-code"
323
+ id="weave--source">
324
+ <pre>
325
+ <span class="ruby-comment cmt"># File lib/rconfig/core_ext/hash.rb, line 97</span>
326
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weave!</span>(<span class="ruby-identifier">other_hash</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">false</span>)
327
+ 98: <span class="ruby-identifier">weaved_hash</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">weave</span>(<span class="ruby-identifier">other_hash</span>, <span class="ruby-identifier">clobber</span>)
328
+ 99: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">weaved_hash</span>)
329
+ 100: <span class="ruby-keyword kw">end</span></pre>
330
+ </div>
331
+
332
+ </div>
333
+
334
+
335
+
336
+
337
+ </div>
338
+
339
+
340
+ </div>
341
+
342
+
343
+ </div>
344
+
345
+
346
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
347
+
348
+ <p>Disabled; run with --debug to generate this.</p>
349
+
350
+ </div>
351
+
352
+ <div id="validator-badges">
353
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
354
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
355
+ Rdoc Generator</a> 1.1.6</small>.</p>
356
+ </div>
357
+
358
+ </body>
359
+ </html>
360
+