imparcial 0.0.2 → 0.0.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 (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