mack-active_record 0.6.1.2 → 0.7.0

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 (42) hide show
  1. data/doc/classes/Mack/Database/Generators.html +140 -0
  2. data/doc/classes/Mack/Database/{Migrator.html → Migrations.html} +74 -39
  3. data/doc/classes/Mack/Database.html +158 -61
  4. data/doc/classes/Mack/Testing/ActiveRecordHelpers.html +168 -0
  5. data/doc/classes/Mack/ViewHelpers/ActiveRecordHelpers.html +52 -52
  6. data/doc/classes/Mack.html +8 -15
  7. data/doc/created.rid +1 -1
  8. data/doc/files/lib/mack-active_record/{genosaurus_helpers_rb.html → database_migrations_rb.html} +4 -4
  9. data/doc/files/lib/mack-active_record/database_rb.html +1 -11
  10. data/doc/files/lib/mack-active_record/{model_column_rb.html → generators_rb.html} +4 -4
  11. data/doc/files/lib/mack-active_record/helpers/orm_helpers_rb.html +1 -1
  12. data/doc/files/lib/mack-active_record/{scaffold_generator/scaffold_generator_rb.html → test_extensions_rb.html} +12 -17
  13. data/doc/files/lib/mack-active_record_rb.html +2 -1
  14. data/doc/files/lib/mack-active_record_tasks_rb.html +8 -1
  15. data/doc/fr_class_index.html +3 -5
  16. data/doc/fr_file_index.html +3 -3
  17. data/doc/fr_method_index.html +11 -14
  18. data/lib/mack-active_record/database.rb +81 -59
  19. data/lib/mack-active_record/database_migrations.rb +29 -0
  20. data/lib/mack-active_record/generators.rb +11 -0
  21. data/lib/mack-active_record/helpers/orm_helpers.rb +9 -12
  22. data/lib/mack-active_record/model_generator/manifest.yml +2 -2
  23. data/lib/mack-active_record/tasks/db_migration_tasks.rake +2 -15
  24. data/lib/mack-active_record/test_extensions.rb +101 -0
  25. data/lib/mack-active_record.rb +4 -3
  26. data/lib/mack-active_record_tasks.rb +1 -0
  27. metadata +22 -22
  28. data/doc/classes/Mack/Genosaurus/ActiveRecord/Helpers.html +0 -225
  29. data/doc/classes/Mack/Genosaurus/ActiveRecord/ModelColumn.html +0 -299
  30. data/doc/classes/Mack/ViewHelpers.html +0 -111
  31. data/doc/classes/ScaffoldGenerator.html +0 -123
  32. data/lib/mack-active_record/genosaurus_helpers.rb +0 -40
  33. data/lib/mack-active_record/model_column.rb +0 -55
  34. data/lib/mack-active_record/scaffold_generator/manifest.yml +0 -31
  35. data/lib/mack-active_record/scaffold_generator/scaffold_generator.rb +0 -42
  36. data/lib/mack-active_record/scaffold_generator/templates/app/views/edit.html.erb.template +0 -19
  37. data/lib/mack-active_record/scaffold_generator/templates/app/views/index.html.erb.template +0 -41
  38. data/lib/mack-active_record/scaffold_generator/templates/app/views/new.html.erb.template +0 -19
  39. data/lib/mack-active_record/scaffold_generator/templates/app/views/show.html.erb.template +0 -12
  40. data/lib/mack-active_record/scaffold_generator/templates/spec.rb.template +0 -47
  41. data/lib/mack-active_record/scaffold_generator/templates/test.rb.template +0 -9
  42. data/lib/mack-active_record/tasks/db_create_drop_tasks.rake +0 -52
@@ -58,6 +58,14 @@
58
58
  <a href="../../files/lib/mack-active_record/database_rb.html">
59
59
  lib/mack-active_record/database.rb
60
60
  </a>
61
+ <br />
62
+ <a href="../../files/lib/mack-active_record/database_migrations_rb.html">
63
+ lib/mack-active_record/database_migrations.rb
64
+ </a>
65
+ <br />
66
+ <a href="../../files/lib/mack-active_record/generators_rb.html">
67
+ lib/mack-active_record/generators.rb
68
+ </a>
61
69
  <br />
62
70
  </td>
63
71
  </tr>
@@ -80,9 +88,11 @@
80
88
  <h3 class="section-bar">Methods</h3>
81
89
 
82
90
  <div class="name-list">
83
- <a href="#M000010">db_settings</a>&nbsp;&nbsp;
84
- <a href="#M000012">drop_or_create_database</a>&nbsp;&nbsp;
85
- <a href="#M000011">establish_connection</a>&nbsp;&nbsp;
91
+ <a href="#M000003">create</a>&nbsp;&nbsp;
92
+ <a href="#M000004">drop</a>&nbsp;&nbsp;
93
+ <a href="#M000006">dump_structure</a>&nbsp;&nbsp;
94
+ <a href="#M000002">establish_connection</a>&nbsp;&nbsp;
95
+ <a href="#M000005">load_structure</a>&nbsp;&nbsp;
86
96
  </div>
87
97
  </div>
88
98
 
@@ -96,7 +106,8 @@
96
106
  <div id="class-list">
97
107
  <h3 class="section-bar">Classes and Modules</h3>
98
108
 
99
- Module <a href="Database/Migrator.html" class="link">Mack::Database::Migrator</a><br />
109
+ Module <a href="Database/Generators.html" class="link">Mack::Database::Generators</a><br />
110
+ Module <a href="Database/Migrations.html" class="link">Mack::Database::Migrations</a><br />
100
111
 
101
112
  </div>
102
113
 
@@ -110,100 +121,186 @@
110
121
  <div id="methods">
111
122
  <h3 class="section-bar">Public Class methods</h3>
112
123
 
113
- <div id="method-M000010" class="method-detail">
114
- <a name="M000010"></a>
124
+ <div id="method-M000003" class="method-detail">
125
+ <a name="M000003"></a>
115
126
 
116
127
  <div class="method-heading">
117
- <a href="#M000010" class="method-signature">
118
- <span class="method-name">db_settings</span><span class="method-args">(env)</span>
128
+ <a href="#M000003" class="method-signature">
129
+ <span class="method-name">create</span><span class="method-args">(env = Mack.env, repis = :default)</span>
119
130
  </a>
120
131
  </div>
121
132
 
122
133
  <div class="method-description">
134
+ <p>
135
+ Creates a database, if it doesn&#8216;t already exist for the specified
136
+ environment
137
+ </p>
123
138
  <p><a class="source-toggle" href="#"
124
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
125
- <div class="method-source-code" id="M000010-source">
139
+ onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000003-source">
126
141
  <pre>
127
- <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 31</span>
128
- 31: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
129
- 32: <span class="ruby-identifier">dbs</span> = <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Mack</span>.<span class="ruby-identifier">root</span>, <span class="ruby-value str">&quot;config&quot;</span>, <span class="ruby-value str">&quot;database.yml&quot;</span>))).<span class="ruby-identifier">result</span>)
130
- 33: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">env</span>]
131
- 34: <span class="ruby-identifier">dbs</span>.<span class="ruby-identifier">symbolize_keys!</span>
132
- 35: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">dbs</span>
133
- 36: <span class="ruby-keyword kw">end</span>
142
+ <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 12</span>
143
+ 12: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">env</span> = <span class="ruby-constant">Mack</span>.<span class="ruby-identifier">env</span>, <span class="ruby-identifier">repis</span> = <span class="ruby-identifier">:default</span>)
144
+ 13: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
145
+ 14: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:adapter</span>]
146
+ 15: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;mysql&quot;</span>
147
+ 16: <span class="ruby-identifier">establish_mysql_connection</span>
148
+ 17: <span class="ruby-identifier">create_mysql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>)
149
+ 18: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;postgresql&quot;</span>
150
+ 19: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGHOST'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>]
151
+ 20: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPORT'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>]
152
+ 21: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPASSWORD'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>]
153
+ 22: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
154
+ 23: <span class="ruby-identifier">create_postgresql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>)
155
+ 24: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;sqlite3&quot;</span>
156
+ 25: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
157
+ 26: <span class="ruby-keyword kw">end</span>
158
+ 27: <span class="ruby-keyword kw">end</span>
134
159
  </pre>
135
160
  </div>
136
161
  </div>
137
162
  </div>
138
163
 
139
- <div id="method-M000012" class="method-detail">
140
- <a name="M000012"></a>
164
+ <div id="method-M000004" class="method-detail">
165
+ <a name="M000004"></a>
141
166
 
142
167
  <div class="method-heading">
143
- <a href="#M000012" class="method-signature">
144
- <span class="method-name">drop_or_create_database</span><span class="method-args">(env, mode = :drop_and_create)</span>
168
+ <a href="#M000004" class="method-signature">
169
+ <span class="method-name">drop</span><span class="method-args">(env = Mack.env, repis = :default)</span>
145
170
  </a>
146
171
  </div>
147
172
 
148
173
  <div class="method-description">
149
174
  <p>
150
- Perform db create or drop
175
+ Drops a database, if it exists for the specified environment
151
176
  </p>
152
- <p>
153
- By default the mode is drop then create, but caller will be able to call
154
- this routine with a specific action (:drop, :create, or :drop_and_create)
177
+ <p><a class="source-toggle" href="#"
178
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
179
+ <div class="method-source-code" id="M000004-source">
180
+ <pre>
181
+ <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 30</span>
182
+ 30: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drop</span>(<span class="ruby-identifier">env</span> = <span class="ruby-constant">Mack</span>.<span class="ruby-identifier">env</span>, <span class="ruby-identifier">repis</span> = <span class="ruby-identifier">:default</span>)
183
+ 31: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
184
+ 32: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:adapter</span>]
185
+ 33: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;mysql&quot;</span>
186
+ 34: <span class="ruby-identifier">establish_mysql_connection</span>
187
+ 35: <span class="ruby-identifier">drop_mysql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>)
188
+ 36: <span class="ruby-comment cmt"># ActiveRecord::Base.connection.drop_database dbs[:database]</span>
189
+ 37: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;postgresql&quot;</span>
190
+ 38: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGHOST'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>]
191
+ 39: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPORT'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>]
192
+ 40: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPASSWORD'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>]
193
+ 41: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
194
+ 42: <span class="ruby-identifier">drop_postgresql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>)
195
+ 43: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;sqlite3&quot;</span>
196
+ 44: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
197
+ 45: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:database</span>])
198
+ 46: <span class="ruby-keyword kw">end</span>
199
+ 47: <span class="ruby-keyword kw">end</span>
200
+ </pre>
201
+ </div>
202
+ </div>
203
+ </div>
204
+
205
+ <div id="method-M000006" class="method-detail">
206
+ <a name="M000006"></a>
207
+
208
+ <div class="method-heading">
209
+ <a href="#M000006" class="method-signature">
210
+ <span class="method-name">dump_structure</span><span class="method-args">(env = Mack.env, repis = :default)</span>
211
+ </a>
212
+ </div>
213
+
214
+ <div class="method-description">
215
+ <p>
216
+ Dumps the structure of the database to a file.
217
+ </p>
218
+ <p><a class="source-toggle" href="#"
219
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
220
+ <div class="method-source-code" id="M000006-source">
221
+ <pre>
222
+ <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 66</span>
223
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dump_structure</span>(<span class="ruby-identifier">env</span> = <span class="ruby-constant">Mack</span>.<span class="ruby-identifier">env</span>, <span class="ruby-identifier">repis</span> = <span class="ruby-identifier">:default</span>)
224
+ 67: <span class="ruby-constant">Mack</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">env</span>)
225
+ 68: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
226
+ 69: <span class="ruby-identifier">structure</span> = <span class="ruby-value str">&quot;&quot;</span>
227
+ 70: <span class="ruby-identifier">output_file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">Mack</span>.<span class="ruby-identifier">root</span>, <span class="ruby-value str">&quot;db&quot;</span>, <span class="ruby-node">&quot;#{env}_schema_structure.sql&quot;</span>)
228
+ 71: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:adapter</span>]
229
+ 72: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;mysql&quot;</span>
230
+ 73: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">output_file</span>, <span class="ruby-value str">&quot;w&quot;</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">structure_dump</span>}
231
+ 74: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;postgresql&quot;</span>
232
+ 75: <span class="ruby-node">`pg_dump -i -U &quot;#{dbs[:username]}&quot; -s -x -O -n #{ENV[&quot;SCHEMA&quot;] ||= &quot;public&quot;} -f #{output_file} #{dbs[:database]}`</span>
233
+ 76: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;sqlite3&quot;</span>
234
+ 77: <span class="ruby-node">`sqlite3 #{dbs[:database]} .schema &gt; #{output_file}`</span>
235
+ 78: <span class="ruby-keyword kw">else</span>
236
+ 79: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Task not supported for '#{dbs[:adapter]}'&quot;</span>
237
+ 80: <span class="ruby-keyword kw">end</span>
238
+ 81: <span class="ruby-keyword kw">end</span>
239
+ </pre>
240
+ </div>
241
+ </div>
242
+ </div>
243
+
244
+ <div id="method-M000002" class="method-detail">
245
+ <a name="M000002"></a>
246
+
247
+ <div class="method-heading">
248
+ <a href="#M000002" class="method-signature">
249
+ <span class="method-name">establish_connection</span><span class="method-args">(env = Mack.env)</span>
250
+ </a>
251
+ </div>
252
+
253
+ <div class="method-description">
254
+ <p>
255
+ Sets up and establishes connections to the database based on the specified
256
+ environment and the settings in the database.yml file.
155
257
  </p>
156
258
  <p><a class="source-toggle" href="#"
157
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
158
- <div class="method-source-code" id="M000012-source">
259
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
260
+ <div class="method-source-code" id="M000002-source">
159
261
  <pre>
160
- <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 48</span>
161
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">drop_or_create_database</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-identifier">:drop_and_create</span>)
162
- 49: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
163
- 50: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:adapter</span>]
164
- 51: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;mysql&quot;</span>
165
- 52: <span class="ruby-identifier">establish_mysql_connection</span>
166
- 53: <span class="ruby-identifier">drop_mysql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop_and_create</span>
167
- 54: <span class="ruby-identifier">create_mysql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:create</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop_and_create</span>
168
- 55:
169
- 56: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;postgresql&quot;</span>
170
- 57: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGHOST'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:host</span>]
171
- 58: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPORT'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:port</span>]
172
- 59: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'PGPASSWORD'</span>] = <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:password</span>]
173
- 60:
174
- 61: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
175
- 62: <span class="ruby-identifier">drop_postgresql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop_and_create</span>
176
- 63: <span class="ruby-identifier">create_postgresql_db</span>(<span class="ruby-identifier">env</span>, <span class="ruby-identifier">dbs</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:create</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop_and_create</span>
177
- 64:
178
- 65: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;sqlite3&quot;</span>
179
- 66: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">clear_active_connections!</span>
180
- 67: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span>(<span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:database</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:drop_and_create</span>
181
- 68: <span class="ruby-keyword kw">end</span>
182
- 69: <span class="ruby-keyword kw">end</span>
262
+ <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 6</span>
263
+ 6: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">env</span> = <span class="ruby-constant">Mack</span>.<span class="ruby-identifier">env</span>)
264
+ 7: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
265
+ 8: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">dbs</span>)
266
+ 9: <span class="ruby-keyword kw">end</span>
183
267
  </pre>
184
268
  </div>
185
269
  </div>
186
270
  </div>
187
271
 
188
- <div id="method-M000011" class="method-detail">
189
- <a name="M000011"></a>
272
+ <div id="method-M000005" class="method-detail">
273
+ <a name="M000005"></a>
190
274
 
191
275
  <div class="method-heading">
192
- <a href="#M000011" class="method-signature">
193
- <span class="method-name">establish_connection</span><span class="method-args">(env)</span>
276
+ <a href="#M000005" class="method-signature">
277
+ <span class="method-name">load_structure</span><span class="method-args">(file, env = Mack.env, repis = :default)</span>
194
278
  </a>
195
279
  </div>
196
280
 
197
281
  <div class="method-description">
282
+ <p>
283
+ Loads the structure of the given file into the database
284
+ </p>
198
285
  <p><a class="source-toggle" href="#"
199
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
200
- <div class="method-source-code" id="M000011-source">
286
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
287
+ <div class="method-source-code" id="M000005-source">
201
288
  <pre>
202
- <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 38</span>
203
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">env</span>)
204
- 39: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
205
- 40: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">dbs</span>)
206
- 41: <span class="ruby-keyword kw">end</span>
289
+ <span class="ruby-comment cmt"># File lib/mack-active_record/database.rb, line 50</span>
290
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">load_structure</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">env</span> = <span class="ruby-constant">Mack</span>.<span class="ruby-identifier">env</span>, <span class="ruby-identifier">repis</span> = <span class="ruby-identifier">:default</span>)
291
+ 51: <span class="ruby-constant">Mack</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span>.<span class="ruby-identifier">establish_connection</span>(<span class="ruby-identifier">env</span>)
292
+ 52: <span class="ruby-identifier">dbs</span> = <span class="ruby-identifier">db_settings</span>(<span class="ruby-identifier">env</span>)
293
+ 53: <span class="ruby-identifier">sql</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">file</span>)
294
+ 54: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">dbs</span>[<span class="ruby-identifier">:adapter</span>]
295
+ 55: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;mysql&quot;</span>, <span class="ruby-value str">&quot;sqlite3&quot;</span>
296
+ 56: <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
297
+ 57: <span class="ruby-identifier">s</span>.<span class="ruby-identifier">strip!</span>
298
+ 58: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">s</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">blank?</span>
299
+ 59: <span class="ruby-keyword kw">end</span>
300
+ 60: <span class="ruby-keyword kw">else</span>
301
+ 61: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">execute</span>(<span class="ruby-identifier">sql</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">blank?</span>
302
+ 62: <span class="ruby-keyword kw">end</span>
303
+ 63: <span class="ruby-keyword kw">end</span>
207
304
  </pre>
208
305
  </div>
209
306
  </div>
@@ -0,0 +1,168 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Mack::Testing::ActiveRecordHelpers</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Mack::Testing::ActiveRecordHelpers</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/mack-active_record/test_extensions_rb.html">
59
+ lib/mack-active_record/test_extensions.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+ <div id="description">
76
+ <p>
77
+ module Helpers
78
+ </p>
79
+ <pre>
80
+ alias_method :mack_rake_task, :rake_task
81
+
82
+ def rake_task(name, env = {}) # :nodoc:
83
+ DataMapper::MigrationRunner.reset!
84
+ mack_rake_task(name, env, [File.join(File.dirname(__FILE__), &quot;tasks&quot;, &quot;db_create_drop_tasks.rake&quot;),
85
+ File.join(File.dirname(__FILE__), &quot;tasks&quot;, &quot;db_migration_tasks.rake&quot;)])
86
+ end
87
+ </pre>
88
+ <p>
89
+ end # Helpers
90
+ </p>
91
+
92
+ </div>
93
+
94
+
95
+ </div>
96
+
97
+ <div id="method-list">
98
+ <h3 class="section-bar">Methods</h3>
99
+
100
+ <div class="name-list">
101
+ <a href="#M000012">rollback_transaction</a>&nbsp;&nbsp;
102
+ </div>
103
+ </div>
104
+
105
+ </div>
106
+
107
+
108
+ <!-- if includes -->
109
+
110
+ <div id="section">
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ <!-- if method_list -->
120
+ <div id="methods">
121
+ <h3 class="section-bar">Public Instance methods</h3>
122
+
123
+ <div id="method-M000012" class="method-detail">
124
+ <a name="M000012"></a>
125
+
126
+ <div class="method-heading">
127
+ <a href="#M000012" class="method-signature">
128
+ <span class="method-name">rollback_transaction</span><span class="method-args">() {|if block_given?| ...}</span>
129
+ </a>
130
+ </div>
131
+
132
+ <div class="method-description">
133
+ <p><a class="source-toggle" href="#"
134
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
135
+ <div class="method-source-code" id="M000012-source">
136
+ <pre>
137
+ <span class="ruby-comment cmt"># File lib/mack-active_record/test_extensions.rb, line 27</span>
138
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rollback_transaction</span>
139
+ 28: <span class="ruby-keyword kw">begin</span>
140
+ 29: <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">transaction</span> <span class="ruby-keyword kw">do</span>
141
+ 30: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
142
+ 31: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Rollback!&quot;</span>
143
+ 32: <span class="ruby-keyword kw">end</span>
144
+ 33: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
145
+ 34: <span class="ruby-comment cmt"># we need to do this so we can throw up actual errors!</span>
146
+ 35: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ex</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;Rollback!&quot;</span>
147
+ 36: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">ex</span>
148
+ 37: <span class="ruby-keyword kw">end</span>
149
+ 38: <span class="ruby-keyword kw">end</span>
150
+ 39: <span class="ruby-keyword kw">end</span>
151
+ </pre>
152
+ </div>
153
+ </div>
154
+ </div>
155
+
156
+
157
+ </div>
158
+
159
+
160
+ </div>
161
+
162
+
163
+ <div id="validator-badges">
164
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
165
+ </div>
166
+
167
+ </body>
168
+ </html>