imparcial 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +5 -0
  3. data/README.txt +48 -0
  4. data/Rakefile +51 -0
  5. data/lib/imparcial.rb +7 -0
  6. metadata +37 -81
  7. data/lib/imparcial/driver/abstract/expression/base.rb +0 -111
  8. data/lib/imparcial/driver/abstract/expression/column.rb +0 -313
  9. data/lib/imparcial/driver/abstract/expression/constraint.rb +0 -149
  10. data/lib/imparcial/driver/abstract/expression/delete.rb +0 -88
  11. data/lib/imparcial/driver/abstract/expression/index.rb +0 -206
  12. data/lib/imparcial/driver/abstract/expression/insert.rb +0 -49
  13. data/lib/imparcial/driver/abstract/expression/lock.rb +0 -11
  14. data/lib/imparcial/driver/abstract/expression/record.rb +0 -41
  15. data/lib/imparcial/driver/abstract/expression/select.rb +0 -38
  16. data/lib/imparcial/driver/abstract/expression/sequence.rb +0 -260
  17. data/lib/imparcial/driver/abstract/expression/statement.rb +0 -128
  18. data/lib/imparcial/driver/abstract/expression/table.rb +0 -416
  19. data/lib/imparcial/driver/abstract/expression/transaction.rb +0 -143
  20. data/lib/imparcial/driver/abstract/expression/update.rb +0 -50
  21. data/lib/imparcial/driver/abstract/expression.rb +0 -24
  22. data/lib/imparcial/driver/abstract/result.rb +0 -95
  23. data/lib/imparcial/driver/abstract/sql/column.rb +0 -103
  24. data/lib/imparcial/driver/abstract/sql/constraint.rb +0 -42
  25. data/lib/imparcial/driver/abstract/sql/delete.rb +0 -22
  26. data/lib/imparcial/driver/abstract/sql/index.rb +0 -45
  27. data/lib/imparcial/driver/abstract/sql/insert.rb +0 -63
  28. data/lib/imparcial/driver/abstract/sql/record.rb +0 -19
  29. data/lib/imparcial/driver/abstract/sql/select.rb +0 -101
  30. data/lib/imparcial/driver/abstract/sql/sequence.rb +0 -55
  31. data/lib/imparcial/driver/abstract/sql/table.rb +0 -42
  32. data/lib/imparcial/driver/abstract/sql/transaction.rb +0 -43
  33. data/lib/imparcial/driver/abstract/sql/update.rb +0 -29
  34. data/lib/imparcial/driver/abstract/sql.rb +0 -21
  35. data/lib/imparcial/driver/abstract/typemap.rb +0 -168
  36. data/lib/imparcial/driver/abstract/util.rb +0 -53
  37. data/lib/imparcial/driver/abstract.rb +0 -255
  38. data/lib/imparcial/driver/mysql/expression/table.rb +0 -17
  39. data/lib/imparcial/driver/mysql/expression.rb +0 -11
  40. data/lib/imparcial/driver/mysql/result.rb +0 -33
  41. data/lib/imparcial/driver/mysql/sql/column.rb +0 -59
  42. data/lib/imparcial/driver/mysql/sql/constraint.rb +0 -39
  43. data/lib/imparcial/driver/mysql/sql/index.rb +0 -42
  44. data/lib/imparcial/driver/mysql/sql/sequence.rb +0 -39
  45. data/lib/imparcial/driver/mysql/sql/table.rb +0 -67
  46. data/lib/imparcial/driver/mysql/sql.rb +0 -15
  47. data/lib/imparcial/driver/mysql/typemap.rb +0 -13
  48. data/lib/imparcial/driver/mysql/util.rb +0 -13
  49. data/lib/imparcial/driver/mysql.rb +0 -49
  50. data/lib/imparcial/driver/postgre/expression.rb +0 -32
  51. data/lib/imparcial/driver/postgre/result.rb +0 -35
  52. data/lib/imparcial/driver/postgre/sql/column.rb +0 -53
  53. data/lib/imparcial/driver/postgre/sql/constraint.rb +0 -37
  54. data/lib/imparcial/driver/postgre/sql/index.rb +0 -53
  55. data/lib/imparcial/driver/postgre/sql/sequence.rb +0 -30
  56. data/lib/imparcial/driver/postgre/sql/table.rb +0 -46
  57. data/lib/imparcial/driver/postgre/sql.rb +0 -15
  58. data/lib/imparcial/driver/postgre/typemap.rb +0 -29
  59. data/lib/imparcial/driver/postgre/util.rb +0 -19
  60. data/lib/imparcial/driver/postgre.rb +0 -43
  61. data/lib/imparcial/driver.rb +0 -1
  62. data/lib/imparcial/exception.rb +0 -71
  63. data/lib/imparcial/initializer.rb +0 -62
data/History.txt ADDED
@@ -0,0 +1,5 @@
1
+ == 0.0.3 / 2007-09-16
2
+
3
+ * 1 major enhancement
4
+ * Birthday!
5
+
data/Manifest.txt ADDED
@@ -0,0 +1,5 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/imparcial.rb
data/README.txt ADDED
@@ -0,0 +1,48 @@
1
+ Imparcial-0.0.3
2
+ by Guilherme Antoniolo Ferreira
3
+ url
4
+
5
+ == DESCRIPTION:
6
+
7
+ Database Abstraction Layer for Ruby
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * none
12
+
13
+ == SYNOPSIS:
14
+
15
+ none
16
+
17
+ == REQUIREMENTS:
18
+
19
+ * facets
20
+
21
+ == INSTALL:
22
+
23
+ * sudo gem install imparcial
24
+
25
+ == LICENSE:
26
+
27
+ (The MIT License)
28
+
29
+ Copyright (c) 2007 Guilherme Antoniolo Ferreira
30
+
31
+ Permission is hereby granted, free of charge, to any person obtaining
32
+ a copy of this software and associated documentation files (the
33
+ 'Software'), to deal in the Software without restriction, including
34
+ without limitation the rights to use, copy, modify, merge, publish,
35
+ distribute, sublicense, and/or sell copies of the Software, and to
36
+ permit persons to whom the Software is furnished to do so, subject to
37
+ the following conditions:
38
+
39
+ The above copyright notice and this permission notice shall be
40
+ included in all copies or substantial portions of the Software.
41
+
42
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
43
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
45
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
46
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
47
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
48
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'test_tool_box'
3
+
4
+ task :test do
5
+
6
+ here = File.dirname(__FILE__)
7
+
8
+ test_task = TestToolBox::TestLoader.run do |config|
9
+ config.test_dir = here + '/test/unit/'
10
+ config.libs << here + '/lib/'
11
+ config.insert_global_var 'ADAPTER', ENV['db']
12
+ end
13
+
14
+ if ENV['path']
15
+
16
+ test_task.run_single_test ENV['path']
17
+
18
+ end
19
+
20
+ task :all do
21
+
22
+ test_task.run_all_tests
23
+
24
+ end
25
+
26
+ end
27
+
28
+ require 'rubygems'
29
+ require 'hoe'
30
+ $:.unshift(File.dirname(__FILE__) + '/lib')
31
+ require 'imparcial'
32
+
33
+ Hoe.new('imparcial', Imparcial::VERSION) do |s|
34
+
35
+ s.rubyforge_name = "imparcial"
36
+ s.name = 'imparcial'
37
+ s.summary = 'A Powerful Database Abstraction Layer'
38
+ s.description = 'Build database queries by using ruby mechanisms.'
39
+ s.url = "http://imparcial.rubyforge.org"
40
+
41
+ s.author = 'Guilherme Antoniolo Ferreira'
42
+ s.email = 'antonio@gmail.com'
43
+
44
+ s.extra_deps << 'facets'
45
+ s.remote_rdoc_dir = ''
46
+ s.changes = s.paragraphs_of('History.txt', 0..1).join("\n\n")
47
+
48
+ end
49
+
50
+ task :repubdoc => [:release, :publish_docs]
51
+
data/lib/imparcial.rb CHANGED
@@ -4,6 +4,13 @@ require 'facets/core/string/camelize'
4
4
  require 'facets/core/string/to_const'
5
5
  require 'facets/core/symbol/to_const'
6
6
 
7
+ require 'imparcial/extension'
7
8
  require 'imparcial/exception'
8
9
  require 'imparcial/driver'
9
10
  require 'imparcial/initializer'
11
+
12
+ module Imparcial
13
+
14
+ VERSION = '0.0.3'
15
+
16
+ end
metadata CHANGED
@@ -3,19 +3,19 @@ rubygems_version: 0.9.4.3
3
3
  specification_version: 1
4
4
  name: imparcial
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2007-09-12 00:00:00 -03:00
8
- summary: Standard Database Interface for ruby
6
+ version: 0.0.3
7
+ date: 2007-09-16 00:00:00 -03:00
8
+ summary: A Powerful Database Abstraction Layer
9
9
  require_paths:
10
10
  - lib
11
11
  email: antonio@gmail.com
12
- homepage: http://guilherme-antonio.blogspot.com
13
- rubyforge_project:
14
- description:
12
+ homepage: http://imparcial.rubyforge.org
13
+ rubyforge_project: imparcial
14
+ description: Build database queries by using ruby mechanisms.
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
18
- has_rdoc: false
18
+ has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
21
  - - ">"
@@ -29,86 +29,42 @@ post_install_message:
29
29
  authors:
30
30
  - Guilherme Antoniolo Ferreira
31
31
  files:
32
- - lib/imparcial
33
- - lib/imparcial/driver
34
- - lib/imparcial/driver/abstract
35
- - lib/imparcial/driver/abstract/expression
36
- - lib/imparcial/driver/abstract/expression/select.rb
37
- - lib/imparcial/driver/abstract/expression/record.rb
38
- - lib/imparcial/driver/abstract/expression/base.rb
39
- - lib/imparcial/driver/abstract/expression/table.rb
40
- - lib/imparcial/driver/abstract/expression/transaction.rb
41
- - lib/imparcial/driver/abstract/expression/constraint.rb
42
- - lib/imparcial/driver/abstract/expression/delete.rb
43
- - lib/imparcial/driver/abstract/expression/sequence.rb
44
- - lib/imparcial/driver/abstract/expression/insert.rb
45
- - lib/imparcial/driver/abstract/expression/index.rb
46
- - lib/imparcial/driver/abstract/expression/column.rb
47
- - lib/imparcial/driver/abstract/expression/lock.rb
48
- - lib/imparcial/driver/abstract/expression/statement.rb
49
- - lib/imparcial/driver/abstract/expression/update.rb
50
- - lib/imparcial/driver/abstract/result.rb
51
- - lib/imparcial/driver/abstract/typemap.rb
52
- - lib/imparcial/driver/abstract/expression.rb
53
- - lib/imparcial/driver/abstract/util.rb
54
- - lib/imparcial/driver/abstract/sql
55
- - lib/imparcial/driver/abstract/sql/select.rb
56
- - lib/imparcial/driver/abstract/sql/record.rb
57
- - lib/imparcial/driver/abstract/sql/table.rb
58
- - lib/imparcial/driver/abstract/sql/transaction.rb
59
- - lib/imparcial/driver/abstract/sql/constraint.rb
60
- - lib/imparcial/driver/abstract/sql/delete.rb
61
- - lib/imparcial/driver/abstract/sql/sequence.rb
62
- - lib/imparcial/driver/abstract/sql/insert.rb
63
- - lib/imparcial/driver/abstract/sql/index.rb
64
- - lib/imparcial/driver/abstract/sql/column.rb
65
- - lib/imparcial/driver/abstract/sql/update.rb
66
- - lib/imparcial/driver/abstract/sql.rb
67
- - lib/imparcial/driver/abstract.rb
68
- - lib/imparcial/driver/postgre.rb
69
- - lib/imparcial/driver/mysql.rb
70
- - lib/imparcial/driver/mysql
71
- - lib/imparcial/driver/mysql/expression
72
- - lib/imparcial/driver/mysql/expression/table.rb
73
- - lib/imparcial/driver/mysql/result.rb
74
- - lib/imparcial/driver/mysql/typemap.rb
75
- - lib/imparcial/driver/mysql/expression.rb
76
- - lib/imparcial/driver/mysql/util.rb
77
- - lib/imparcial/driver/mysql/sql
78
- - lib/imparcial/driver/mysql/sql/table.rb
79
- - lib/imparcial/driver/mysql/sql/constraint.rb
80
- - lib/imparcial/driver/mysql/sql/sequence.rb
81
- - lib/imparcial/driver/mysql/sql/index.rb
82
- - lib/imparcial/driver/mysql/sql/column.rb
83
- - lib/imparcial/driver/mysql/sql.rb
84
- - lib/imparcial/driver/postgre
85
- - lib/imparcial/driver/postgre/expression
86
- - lib/imparcial/driver/postgre/result.rb
87
- - lib/imparcial/driver/postgre/typemap.rb
88
- - lib/imparcial/driver/postgre/expression.rb
89
- - lib/imparcial/driver/postgre/util.rb
90
- - lib/imparcial/driver/postgre/sql
91
- - lib/imparcial/driver/postgre/sql/table.rb
92
- - lib/imparcial/driver/postgre/sql/constraint.rb
93
- - lib/imparcial/driver/postgre/sql/sequence.rb
94
- - lib/imparcial/driver/postgre/sql/index.rb
95
- - lib/imparcial/driver/postgre/sql/column.rb
96
- - lib/imparcial/driver/postgre/sql.rb
97
- - lib/imparcial/driver.rb
98
- - lib/imparcial/initializer.rb
99
- - lib/imparcial/exception.rb
32
+ - History.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ - Rakefile
100
36
  - lib/imparcial.rb
101
37
  test_files: []
102
38
 
103
- rdoc_options: []
104
-
105
- extra_rdoc_files: []
106
-
39
+ rdoc_options:
40
+ - --main
41
+ - README.txt
42
+ extra_rdoc_files:
43
+ - History.txt
44
+ - Manifest.txt
45
+ - README.txt
107
46
  executables: []
108
47
 
109
48
  extensions: []
110
49
 
111
50
  requirements: []
112
51
 
113
- dependencies: []
114
-
52
+ dependencies:
53
+ - !ruby/object:Gem::Dependency
54
+ name: facets
55
+ version_requirement:
56
+ version_requirements: !ruby/object:Gem::Version::Requirement
57
+ requirements:
58
+ - - ">"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.0.0
61
+ version:
62
+ - !ruby/object:Gem::Dependency
63
+ name: hoe
64
+ version_requirement:
65
+ version_requirements: !ruby/object:Gem::Version::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.3.0
70
+ version:
@@ -1,111 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Base
5
-
6
- public
7
-
8
- # In order to make things easier to develop, we've adopted hashes
9
- # as parameter. Furthermore, single parameters, like drop_table,
10
- # must be in hashes too.
11
- # By doing that, we can provide as many features as we want without
12
- # blowing up the interface.
13
- # Also, we can use this following method to apply some validations.
14
-
15
- def check_options ( expected_options , user_options )
16
-
17
- # Let's iterate over all user options.
18
-
19
- user_options.each do |user_option, content|
20
-
21
- confirmed = false
22
-
23
- # Let's iterate over expected options.
24
-
25
- expected_options.each_key do |name|
26
-
27
- if name.to_s == user_option.to_s
28
-
29
- # Let's verify if content is a collection.
30
-
31
- if content.class == Array || content.class == Hash
32
-
33
- # If so, we need to check out for content.
34
-
35
- if content.length == 0
36
-
37
- raise OptionError.new('Option ' + name.to_s + ' needs content')
38
-
39
- end
40
-
41
- end
42
-
43
- # Yeah, user option matches with expected option.
44
-
45
- confirmed = true
46
- break
47
-
48
- end
49
-
50
- end
51
-
52
- # If there's a match, we move forward.
53
-
54
- if confirmed
55
-
56
- confirmed = false
57
- next
58
-
59
- end
60
-
61
- # Opss. user has entered with an unknown option.
62
-
63
- raise OptionError.new('Cannot find option ' + user_option.to_s)
64
-
65
- end
66
-
67
- # Let's iterate over all expected and required options.
68
-
69
- for name, condition in expected_options
70
-
71
- # If this option is not required, we can move forward.
72
-
73
- next unless condition == :required
74
- confirmed = false
75
-
76
- # Over user's.
77
-
78
- user_options.each_key do |user_option|
79
-
80
- if name.to_s == user_option.to_s
81
-
82
- confirmed = true
83
- break
84
-
85
- end
86
-
87
- end
88
-
89
- # Alright, user has entered with a necessary option.
90
-
91
- if confirmed
92
-
93
- confirmed = false
94
- next
95
-
96
- end
97
-
98
- # Opss... user need to provide a required option.
99
-
100
- raise OptionError.new('Option ' + name.to_s + ' is necessary')
101
-
102
- end
103
-
104
- end
105
-
106
- module_function :check_options
107
-
108
- end
109
- end
110
- end
111
- end
@@ -1,313 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Column
5
-
6
- ###########################################
7
- # #
8
- # Column Dropping #
9
- # #
10
- ###########################################
11
-
12
- private
13
-
14
- def expected_options_for_dropping_columns
15
-
16
- {:table_name => :required, :fields => :required}
17
-
18
- end
19
-
20
- public
21
-
22
- # === Description
23
- # Drop some columns.
24
- #
25
- # === Usage
26
- # abstract_adapter.drop_columns :table_name => 'person', :fields => ['id','name']
27
- #
28
- # === Options
29
- # * :table_name
30
- # * :fields
31
- #
32
- # === Returning
33
- # nothing
34
-
35
- def drop_columns ( options = {} )
36
-
37
- check_options expected_options_for_dropping_columns, options
38
-
39
- sql = sql_for_dropping_columns( options )
40
-
41
- logger.warn sql if @column_logging
42
-
43
- query sql
44
-
45
- rescue adapter_specific_exception => ex
46
-
47
- raise ColumnDropError.new(ex.message)
48
-
49
- end
50
-
51
- ###########################################
52
- # #
53
- # Column Creation #
54
- # #
55
- ###########################################
56
-
57
- private
58
-
59
- def expected_options_for_adding_columns
60
-
61
- {:table_name => :required, :fields => :required}
62
-
63
- end
64
-
65
- public
66
-
67
- # === Description
68
- # Add some columns without dropping any table.
69
- #
70
- # === Usage
71
- # abstract_adapter.add_columns :table_name => 'person',
72
- # :fields => [{:name => :age, :type => :integer]
73
- #
74
- # === Options
75
- # * :table_name
76
- # * :fields
77
- #
78
- # === Returning
79
- # nothing
80
-
81
- def add_columns ( options = {} )
82
-
83
- check_options expected_options_for_adding_columns, options
84
-
85
- sql = sql_for_adding_columns( options )
86
-
87
- logger.warn sql if @column_logging
88
-
89
- query sql
90
-
91
- rescue adapter_specific_exception => ex
92
-
93
- raise ColumnCreateError.new(ex.message)
94
-
95
- end
96
-
97
- ###########################################
98
- # #
99
- # Column Listing #
100
- # #
101
- ###########################################
102
-
103
- private
104
-
105
- def expected_options_for_getting_columns_information
106
-
107
- {:table_name => :required}
108
-
109
- end
110
-
111
- public
112
-
113
- # === Description
114
- # Get name,type and size from every column in a given table.
115
- #
116
- # === Usage
117
- # abstract_adapter.get_columns_information :table_name => 'person'
118
- #
119
- # === Options
120
- # * :table_name
121
- #
122
- # === Returning
123
- # an array with hashes.
124
- # * :name
125
- # * :type
126
- # * :size
127
-
128
- def get_columns_information ( options = {} )
129
-
130
- check_options expected_options_for_getting_columns_information, options
131
-
132
- sql = sql_for_getting_columns_information( options )
133
-
134
- logger.warn sql if @column_logging
135
-
136
- query sql
137
-
138
- fields = []
139
-
140
- result.fetch do |name, type, size|
141
-
142
- field = column_to_field :name => name.value, :type => type.value, :size => size.value
143
-
144
- fields << field
145
-
146
- end
147
-
148
- fields
149
-
150
- rescue adapter_specific_exception => ex
151
-
152
- raise ColumnListError.new(ex.message)
153
-
154
- end
155
-
156
- private
157
-
158
- def expected_options_for_getting_column_information
159
-
160
- {:table_name => :required, :field_name => :required}
161
-
162
- end
163
-
164
- public
165
-
166
- # === Description
167
- # Get name,type and size from a column in a given table.
168
- # See :get_columns_information
169
-
170
- def get_column_information ( options = {} )
171
-
172
- check_options expected_options_for_getting_column_information, options
173
-
174
- sql = sql_for_getting_column_information options
175
-
176
- logger.warn sql if @column_logging
177
-
178
- query sql
179
-
180
- name, type, size = result.fetch_first_row
181
-
182
- column_to_field :name => name.value, :type => type.value, :size => size.value
183
-
184
- end
185
-
186
- ###########################################
187
- # #
188
- # Column Renaming #
189
- # #
190
- ###########################################
191
-
192
- private
193
-
194
- def expected_options_for_renaming_column
195
-
196
- {:table_name => :required, :field => :required}
197
-
198
- end
199
-
200
- public
201
-
202
- # === Description
203
- # Rename a column.
204
- #
205
- # === Usage
206
- # abstract_adapter.rename_column :table_name => 'person', :field => {:id => :super_id}
207
- #
208
- # === Options
209
- # * :table_name
210
- # * :fields
211
- #
212
- # === Returning
213
- # nothing
214
-
215
- def rename_column ( options = {} )
216
-
217
- check_options expected_options_for_renaming_column, options
218
-
219
- sql = sql_for_renaming_column( options )
220
-
221
- logger.warn sql if @column_logging
222
-
223
- query sql
224
-
225
- rescue adapter_specific_exception => ex
226
-
227
- raise ColumnRenameError.new(ex.message)
228
-
229
- end
230
-
231
- private
232
-
233
- def expected_options_for_renaming_columns
234
-
235
- {:table_name => :required, :fields => :required}
236
-
237
- end
238
-
239
- public
240
-
241
- # === Description
242
- # Rename a bunch of columns. See :rename_column for further info.
243
-
244
- def rename_columns ( options = {} )
245
-
246
- check_options expected_options_for_renaming_columns, options
247
-
248
- options[:fields].each do |old_field,new_field|
249
-
250
- sql = sql_for_renaming_column( :table_name => options[:table_name], :field => {old_field => new_field})
251
-
252
- logger.warn sql if @column_logging
253
-
254
- query sql
255
-
256
- end
257
-
258
- rescue adapter_specific_exception => ex
259
-
260
- raise ColumnRenameError.new(ex.message)
261
-
262
- end
263
-
264
- ###########################################
265
- # #
266
- # Column Modification #
267
- # #
268
- ###########################################
269
-
270
- private
271
-
272
- def expected_options_for_modifying_columns
273
-
274
- {:table_name => :required, :fields => :required}
275
-
276
- end
277
-
278
- public
279
-
280
- # === Description
281
- # Modify column type and size if needed.
282
- #
283
- # === Usage
284
- # abstract_adapter.modify_columns :table_name => 'person',
285
- # :fields => [{:name => :id, :type => :float}]
286
- #
287
- # === Options
288
- # * :table_name
289
- # * :fields
290
- #
291
- # === Returning
292
- # nothing
293
-
294
- def modify_columns ( options = {} )
295
-
296
- check_options expected_options_for_modifying_columns, options
297
-
298
- sql = sql_for_modifying_columns( options )
299
-
300
- logger.warn sql if @column_logging
301
-
302
- query sql
303
-
304
- rescue adapter_specific_exception => ex
305
-
306
- raise ColumnUpdateError.new(ex.message)
307
-
308
- end
309
-
310
- end
311
- end
312
- end
313
- end