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
@@ -1,149 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Constraint
5
-
6
- ###########################################
7
- # #
8
- # Primary Key #
9
- # #
10
- ###########################################
11
-
12
- private
13
-
14
- def expected_options_for_adding_primary_key
15
-
16
- {:table_name => :required, :fields => :required}
17
-
18
- end
19
-
20
- public
21
-
22
- # === Description
23
- # Make a bunch of fields primary key.
24
- #
25
- # === Usage
26
- # abstract_adapter.primary_key :table_name => 'person',
27
- # :fields => ['id','name']
28
- #
29
- # === Options
30
- # * :table_name
31
- # * :fields
32
- #
33
- # === Returning
34
- # nothing
35
-
36
- def add_primary_key ( options = {} )
37
-
38
- check_options expected_options_for_adding_primary_key, options
39
-
40
- sql = sql_for_adding_primary_key( options )
41
-
42
- logger.warn sql if @column_logging
43
-
44
- query sql
45
-
46
- rescue adapter_specific_exception => ex
47
-
48
- raise ColumnConstraintError.new(ex.message)
49
-
50
- end
51
-
52
- ###########################################
53
- # #
54
- # Auto Increment #
55
- # #
56
- ###########################################
57
-
58
- private
59
-
60
- def expected_options_for_adding_auto_increment
61
-
62
- {:table_name => :required, :field => :required}
63
-
64
- end
65
-
66
- public
67
-
68
- # === Description
69
- # Make a bunch of fields auto increment.
70
- #
71
- # === Usage
72
- # abstract_adapter.add_auto_increment :table_name => 'person',
73
- # :fields => ['id','name']
74
- #
75
- # === Options
76
- # * :table_name
77
- # * :fields
78
- #
79
- # === Returning
80
- # nothing
81
-
82
- def add_auto_increment ( options = {} )
83
-
84
- check_options expected_options_for_adding_auto_increment, options
85
-
86
- add_primary_key :table_name => options[:table_name], :fields => [options[:field]]
87
- sql = sql_for_adding_auto_increment( options )
88
-
89
- logger.warn sql if @column_logging
90
-
91
- query sql
92
-
93
- rescue adapter_specific_exception => ex
94
-
95
- raise ColumnConstraintError.new(ex.message)
96
-
97
- end
98
-
99
- ###########################################
100
- # #
101
- # Default Value #
102
- # #
103
- ###########################################
104
-
105
- private
106
-
107
- def expected_options_for_adding_default_value
108
-
109
- {:table_name => :required, :fields => :required}
110
-
111
- end
112
-
113
- public
114
-
115
- # === Description
116
- # Add default value for some fields.
117
- #
118
- # === Usage
119
- # abstract_adapter.add_default_value :table_name => 'person',
120
- # :fields => {:id => 1, :name => 'jota'}
121
- #
122
- # === Options
123
- # * :table_name
124
- # * :fields
125
- #
126
- # === Returning
127
- # nothing
128
-
129
- def add_default_value ( options = {} )
130
-
131
- check_options expected_options_for_adding_default_value, options
132
-
133
- sql = sql_for_adding_default_value( options )
134
-
135
- logger.warn sql if @column_logging
136
-
137
- query sql
138
-
139
- rescue adapter_specific_exception => ex
140
-
141
- raise ColumnConstraintError.new(ex.message)
142
-
143
- end
144
-
145
- end
146
- end
147
- end
148
- end
149
-
@@ -1,88 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Delete
5
-
6
- private
7
-
8
- def expected_options_for_deleting
9
-
10
- {:table_name => :required, :conditions => :required}
11
-
12
- end
13
-
14
- public
15
-
16
- # === Description
17
- # Delete some records. Besides, this function demands deleting
18
- # with some conditions.
19
- #
20
- # === Usage
21
- # abstract_adapter.delete :table_name => 'person', :conditions =>
22
- # ['id = ?',1]
23
- #
24
- # === Options
25
- # * :table_name
26
- # * :conditions
27
- #
28
- # === Returning
29
- # nothing
30
-
31
- def delete ( options = {} )
32
-
33
- check_options expected_options_for_deleting, options
34
-
35
- sql = sql_for_deleting( options )
36
-
37
- logger.warn sql if @delete_logging
38
-
39
- query sql
40
-
41
- rescue adapter_specific_exception => ex
42
-
43
- raise DeleteError.new(ex.message)
44
-
45
- end
46
-
47
- private
48
-
49
- def expected_options_for_deleting_all
50
-
51
- {:table_name => :required}
52
-
53
- end
54
-
55
- public
56
-
57
- # === Description
58
- # Delete some records. Besides, this function demands no conditions.
59
- #
60
- # === Usage
61
- # abstract_adapter.delete_all :table_name => 'person'
62
- #
63
- # === Options
64
- # * :table_name
65
- #
66
- # === Returning
67
- # nothing
68
-
69
- def delete_all ( options = {} )
70
-
71
- check_options expected_options_for_deleting_all, options
72
-
73
- sql = sql_for_deleting( options )
74
-
75
- logger.warn sql if @delete_logging
76
-
77
- query sql
78
-
79
- rescue adapter_specific_exception => ex
80
-
81
- raise DeleteError.new(ex.message)
82
-
83
- end
84
-
85
- end
86
- end
87
- end
88
- end
@@ -1,206 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Index
5
-
6
- ###########################################
7
- # #
8
- # Index Creation #
9
- # #
10
- ###########################################
11
-
12
- private
13
-
14
- def expected_options_for_creating_index
15
-
16
- {
17
- :index_name => :required, :index_type => :optional, :table_name => :required,
18
- :column_name => :required
19
- }
20
-
21
- end
22
-
23
- public
24
-
25
- # === Description
26
- # Create an index.
27
- #
28
- # === Usage
29
- # abstract_adapter.create_index :index_name => 'idx', :table_name = 'person'
30
- # ,:column_name => :id
31
- #
32
- # === Options
33
- # * :index_name
34
- # * :table_name
35
- # * :column_name
36
- # * :index_type
37
- #
38
- # === Returning
39
- # nothing
40
-
41
- def create_index ( options = {} )
42
-
43
- check_options expected_options_for_creating_index, options
44
-
45
- sql = sql_for_creating_index( options )
46
-
47
- logger.warn sql if @index_logging
48
-
49
- query sql
50
-
51
- rescue adapter_specific_exception => ex
52
-
53
- raise IndexCreateError.new(ex.message)
54
-
55
- end
56
-
57
- ###########################################
58
- # #
59
- # Index Dropping #
60
- # #
61
- ###########################################
62
-
63
- private
64
-
65
- def expected_options_for_dropping_index
66
-
67
- {:table_name => :required, :index_name => :required}
68
-
69
- end
70
-
71
- public
72
-
73
- def drop_index ( options = {} )
74
-
75
- check_options expected_options_for_dropping_index, options
76
-
77
- sql = sql_for_dropping_index( options )
78
-
79
- logger.warn sql if @index_logging
80
-
81
- query sql
82
-
83
- rescue adapter_specific_exception => ex
84
-
85
- raise IndexDropError.new(ex.message)
86
-
87
- end
88
-
89
- def expected_options_for_dropping_all_indexes
90
-
91
- {:table_name => :required}
92
-
93
- end
94
-
95
- public
96
-
97
- def drop_all_indexes ( options = {} )
98
-
99
- check_options expected_options_for_dropping_all_indexes, options
100
-
101
- for index in get_indexes(:table_name => options[:table_name])
102
-
103
- drop_index :table_name => index[:table], :index_name => index[:name]
104
-
105
- end
106
-
107
- end
108
-
109
- ###########################################
110
- # #
111
- # Index Listing #
112
- # #
113
- ###########################################
114
-
115
- private
116
-
117
- def expected_options_for_getting_indexes
118
-
119
- {:table_name => :required}
120
-
121
- end
122
-
123
- public
124
-
125
- # === Description
126
- # Get metadata about all indexes.
127
- #
128
- # === Usage
129
- # abstract_adapter.retrieve_indexes
130
- #
131
- # === Options
132
- # No options
133
- #
134
- # === Returning
135
- # an array with hashes.
136
-
137
- def get_indexes ( options = {} )
138
-
139
- check_options expected_options_for_getting_indexes, options
140
-
141
- sql = sql_for_getting_indexes options
142
-
143
- logger.warn sql if @index_logging
144
-
145
- query sql
146
-
147
- indexes = []
148
-
149
- result.fetch do |table, column, index|
150
-
151
- indexes << {:table => table.value,:column => column.value,:name => index.value}
152
-
153
- end
154
-
155
- indexes
156
-
157
- rescue adapter_specific_exception => ex
158
-
159
- raise IndexListError.new(ex.message)
160
-
161
- end
162
-
163
- private
164
-
165
- def expected_options_for_verifying_index_existance
166
-
167
- {:index_name => :required, :table_name => :required}
168
-
169
- end
170
-
171
- public
172
-
173
- # === Description
174
- # Verify if a given index exists.
175
- #
176
- # === Usage
177
- # abstract_adapter.retrieve_indexes
178
- #
179
- # === Options
180
- # No options
181
- #
182
- # === Returning
183
- # true or false.
184
-
185
- def index_exists? ( options = {} )
186
-
187
- check_options expected_options_for_verifying_index_existance, options
188
-
189
- sql = sql_for_index_exists?( options )
190
-
191
- logger.warn sql if @index_logging
192
-
193
- query sql
194
-
195
- result.rows > 0
196
-
197
- rescue adapter_specific_exception => ex
198
-
199
- raise IndexDropError.new(ex.message)
200
-
201
- end
202
-
203
- end
204
- end
205
- end
206
- end
@@ -1,49 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Insert
5
-
6
- private
7
-
8
- def expected_options_for_inserting
9
-
10
- {:table_name => :required, :values => :required}
11
-
12
- end
13
-
14
- public
15
-
16
- # === Description
17
- # Insert some records.
18
- #
19
- # === Usage
20
- # abstract_adapter.insert :table_name => 'person', :values =>
21
- # {:id => 1, :name => 'ronaldinho'}
22
- #
23
- # === Options
24
- # * :table_name
25
- # * :values
26
- #
27
- # === Returning
28
- # nothing
29
-
30
- def insert ( options = {} )
31
-
32
- check_options expected_options_for_inserting, options
33
-
34
- sql = sql_for_inserting( options )
35
-
36
- logger.warn sql if @insert_logging
37
-
38
- query sql
39
-
40
- rescue adapter_specific_exception => ex
41
-
42
- raise InsertError.new(ex.message)
43
-
44
- end
45
-
46
- end
47
- end
48
- end
49
- end
@@ -1,11 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Lock
5
-
6
- # Need implementation.
7
-
8
- end
9
- end
10
- end
11
- end
@@ -1,41 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Record
5
-
6
- private
7
-
8
- def expected_options_for_total_of_records
9
-
10
- {:table_name => :required}
11
-
12
- end
13
-
14
- public
15
-
16
- # Retrieve the total of records in a table.
17
-
18
- def total_of_records ( options = {} )
19
-
20
- check_options expected_options_for_total_of_records, options
21
-
22
- sql = sql_for_couting_records( options )
23
-
24
- logger.warn sql if @record_logging
25
-
26
- query sql
27
-
28
- result.fetch_first_row.value
29
-
30
- rescue adapter_specific_exception => ex
31
-
32
- raise ExpressionError.new(ex.message)
33
-
34
- end
35
- alias_method :num_of_records, :total_of_records
36
-
37
-
38
- end
39
- end
40
- end
41
- end
@@ -1,38 +0,0 @@
1
- module Imparcial
2
- module Driver
3
- module AbstractExpression
4
- module Select
5
-
6
- private
7
-
8
- def expected_options_for_selecting
9
-
10
- {
11
- :table_name => :optional, :joins => :optional, :fields => :optional,
12
- :conditions => :optional, :limit => :optional, :order_asc => :optional,
13
- :order_desc => :optional
14
- }
15
-
16
- end
17
-
18
-
19
- public
20
-
21
- def select ( options = {} )
22
-
23
- sql = sql_for_selecting( options )
24
-
25
- logger.warn sql if @select_logging
26
-
27
- query sql
28
-
29
- rescue adapter_specific_exception => ex
30
-
31
- raise SelectError.new(ex.message)
32
-
33
- end
34
-
35
- end
36
- end
37
- end
38
- end