mysql_framework 0.0.10 → 0.0.11
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.
- checksums.yaml +4 -4
- data/lib/mysql_framework/sql_query.rb +90 -32
- data/lib/mysql_framework/version.rb +1 -1
- data/spec/lib/mysql_framework/sql_query_spec.rb +127 -46
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63af1c4a1fb7d7ae8d69681134a6e58ade4b2baa6070443bf8ecb2e8f5a5b94e
|
4
|
+
data.tar.gz: 89478ee0fec0d2e6fb9ac3dbac4efeed74e751dce998961f7cd547b6d90632d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 479082218477782a3c435c31cdabab1285f48d50a210f03b94fd4ace9569e6cf0497612dc45e451558b8a5c4ad0c982c11a1905057bc120228bd81029d359b52
|
7
|
+
data.tar.gz: 31c848e20ee916e9ae61d1454b711df9dacf78e81f1265d798aafae061f5465af0b6e0066fdce8886c271be8510c14e415f83320d9b3c9b88264ce26b55464a2
|
@@ -18,119 +18,177 @@ module MysqlFramework
|
|
18
18
|
|
19
19
|
# This method is called to start a select query
|
20
20
|
def select(*columns)
|
21
|
-
@sql = "
|
21
|
+
@sql = "SELECT #{columns.join(', ')}"
|
22
|
+
|
22
23
|
self
|
23
24
|
end
|
24
25
|
|
25
26
|
# This method is called to start a delete query
|
26
27
|
def delete
|
27
|
-
@sql = '
|
28
|
+
@sql = 'DELETE'
|
29
|
+
|
28
30
|
self
|
29
31
|
end
|
30
32
|
|
31
33
|
# This method is called to start an update query
|
32
34
|
def update(table, partition = nil)
|
33
|
-
@sql = "
|
34
|
-
@sql += "
|
35
|
+
@sql = "UPDATE #{table}"
|
36
|
+
@sql += " PARTITION (p#{partition})" unless partition.nil?
|
37
|
+
|
35
38
|
self
|
36
39
|
end
|
37
40
|
|
38
41
|
# This method is called to start an insert query
|
39
42
|
def insert(table, partition = nil)
|
40
|
-
@sql += "
|
41
|
-
@sql += "
|
43
|
+
@sql += "INSERT INTO #{table}"
|
44
|
+
@sql += " PARTITION (p#{partition})" unless partition.nil?
|
45
|
+
|
42
46
|
self
|
43
47
|
end
|
44
48
|
|
45
49
|
# This method is called to specify the columns to insert into.
|
46
50
|
def into(*columns)
|
47
|
-
@sql += " (#{columns.join(',')})"
|
51
|
+
@sql += " (#{columns.join(', ')})"
|
52
|
+
|
48
53
|
self
|
49
54
|
end
|
50
55
|
|
51
56
|
# This method is called to specify the values to insert.
|
52
57
|
def values(*values)
|
53
|
-
@sql += "
|
54
|
-
|
55
|
-
|
56
|
-
|
58
|
+
@sql += " VALUES (#{values.map { '?' }.join(', ')})"
|
59
|
+
|
60
|
+
values.each { |value| @params << value }
|
61
|
+
|
57
62
|
self
|
58
63
|
end
|
59
64
|
|
60
65
|
# This method is called to specify the columns to update.
|
61
66
|
def set(values)
|
62
|
-
@sql += '
|
63
|
-
|
64
|
-
|
65
|
-
@
|
67
|
+
@sql += ' SET '
|
68
|
+
|
69
|
+
values.each do |key, param|
|
70
|
+
@sql += "`#{key}` = ?, "
|
71
|
+
@params << param
|
66
72
|
end
|
67
|
-
|
73
|
+
|
74
|
+
@sql = @sql.chomp(', ')
|
75
|
+
|
76
|
+
self
|
77
|
+
end
|
78
|
+
|
79
|
+
def increment(values)
|
80
|
+
@sql += @sql.include?('SET') ? ', ' : ' SET '
|
81
|
+
|
82
|
+
values.each { |key, by| @sql += "`#{key}` = `#{key}` + #{by}, " }
|
83
|
+
|
84
|
+
@sql = @sql.chomp(', ')
|
85
|
+
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
def decrement(values)
|
90
|
+
@sql += @sql.include?('SET') ? ', ' : ' SET '
|
91
|
+
|
92
|
+
values.each { |key, by| @sql += "`#{key}` = `#{key}` - #{by}, " }
|
93
|
+
|
94
|
+
@sql = @sql.chomp(', ')
|
95
|
+
|
68
96
|
self
|
69
97
|
end
|
70
98
|
|
71
99
|
# This method is called to specify the table/partition a select/delete query is for.
|
72
100
|
def from(table, partition = nil)
|
73
|
-
@sql += "
|
74
|
-
@sql += "
|
101
|
+
@sql += " FROM #{table}"
|
102
|
+
@sql += " PARTITION (p#{partition})" unless partition.nil?
|
103
|
+
|
75
104
|
self
|
76
105
|
end
|
77
106
|
|
78
107
|
# This method is called to specify a where clause for a query.
|
79
108
|
def where(*conditions)
|
80
|
-
@sql += '
|
81
|
-
@sql += " (#{conditions.join('
|
82
|
-
|
83
|
-
|
84
|
-
|
109
|
+
@sql += ' WHERE' unless @sql.include?('WHERE')
|
110
|
+
@sql += " (#{conditions.join(' AND ')}) "
|
111
|
+
|
112
|
+
conditions.each { |condition| @params << condition.value }
|
113
|
+
|
85
114
|
self
|
86
115
|
end
|
87
116
|
|
88
117
|
# This method is called to add an `and` keyword to a query to provide additional where clauses.
|
89
118
|
def and
|
90
|
-
@sql += '
|
119
|
+
@sql += 'AND'
|
120
|
+
|
91
121
|
self
|
92
122
|
end
|
93
123
|
|
94
124
|
# This method is called to add an `or` keyword to a query to provide alternate where clauses.
|
95
125
|
def or
|
96
|
-
@sql += '
|
126
|
+
@sql += 'OR'
|
127
|
+
|
97
128
|
self
|
98
129
|
end
|
99
130
|
|
100
131
|
# This method is called to add an `order by` statement to a query
|
101
132
|
def order(*columns)
|
102
|
-
@sql += "
|
133
|
+
@sql += " ORDER BY #{columns.join(', ')}"
|
134
|
+
|
103
135
|
self
|
104
136
|
end
|
105
137
|
|
106
138
|
# This method is called to add an `order by ... desc` statement to a query
|
107
139
|
def order_desc(*columns)
|
108
140
|
order(*columns)
|
109
|
-
|
141
|
+
|
142
|
+
@sql += ' DESC'
|
143
|
+
|
110
144
|
self
|
111
145
|
end
|
112
146
|
|
113
147
|
# This method is called to add a limit to a query
|
114
148
|
def limit(count)
|
115
|
-
@sql += "
|
149
|
+
@sql += " LIMIT #{count}"
|
150
|
+
|
151
|
+
self
|
152
|
+
end
|
153
|
+
|
154
|
+
# This method is called to add an offset to a query
|
155
|
+
def offset(offset)
|
156
|
+
raise 'A limit clause must be supplied to use an offset' unless @sql.include?('LIMIT')
|
157
|
+
|
158
|
+
@sql += " OFFSET #{offset}"
|
159
|
+
|
116
160
|
self
|
117
161
|
end
|
118
162
|
|
119
163
|
# This method is called to add a join statement to a query.
|
120
|
-
def join(table)
|
121
|
-
@sql += "
|
164
|
+
def join(table, type: nil)
|
165
|
+
@sql += " #{type.upcase}" unless type.nil?
|
166
|
+
@sql += " JOIN #{table}"
|
167
|
+
|
122
168
|
self
|
123
169
|
end
|
124
170
|
|
125
171
|
# This method is called to add the `on` detail to a join statement.
|
126
172
|
def on(column_1, column_2)
|
127
|
-
@sql += "
|
173
|
+
@sql += " ON #{column_1} = #{column_2}"
|
174
|
+
|
128
175
|
self
|
129
176
|
end
|
130
177
|
|
131
178
|
# This method is called to add a `group by` statement to a query
|
132
179
|
def group_by(*columns)
|
133
|
-
@sql += "
|
180
|
+
@sql += " GROUP BY #{columns.join(', ')}"
|
181
|
+
|
182
|
+
self
|
183
|
+
end
|
184
|
+
|
185
|
+
# This method is called to specify a having clause for a query.
|
186
|
+
def having(*conditions)
|
187
|
+
@sql += ' HAVING' unless @sql.include?('HAVING')
|
188
|
+
@sql += " (#{conditions.join(' AND ')}) "
|
189
|
+
|
190
|
+
conditions.each { |condition| @params << condition.value }
|
191
|
+
|
134
192
|
self
|
135
193
|
end
|
136
194
|
end
|
@@ -20,7 +20,7 @@ describe MysqlFramework::SqlQuery do
|
|
20
20
|
'2018-06-28 10:00:00'
|
21
21
|
)
|
22
22
|
|
23
|
-
expect(subject.sql).to eq('
|
23
|
+
expect(subject.sql).to eq('INSERT INTO `gems` PARTITION (p15) (`gems`.`name`, `gems`.`author`, `gems`.`created_at`, `gems`.`updated_at`) VALUES (?, ?, ?, ?)')
|
24
24
|
expect(subject.params).to eq(['mysql_framework', 'sage', '2018-06-28 10:00:00', '2018-06-28 10:00:00'])
|
25
25
|
end
|
26
26
|
|
@@ -30,32 +30,23 @@ describe MysqlFramework::SqlQuery do
|
|
30
30
|
name: 'mysql_framework',
|
31
31
|
updated_at: '2018-06-28 13:00:00'
|
32
32
|
)
|
33
|
-
.where(
|
34
|
-
gems[:id].eq('12345')
|
35
|
-
)
|
33
|
+
.where(gems[:id].eq('12345'))
|
36
34
|
|
37
|
-
expect(subject.sql).to eq('
|
35
|
+
expect(subject.sql).to eq('UPDATE `gems` PARTITION (p20) SET `name` = ?, `updated_at` = ? WHERE (`gems`.`id` = ?)')
|
38
36
|
expect(subject.params).to eq(['mysql_framework', '2018-06-28 13:00:00', '12345'])
|
39
37
|
end
|
40
38
|
|
41
39
|
it 'builds the delete query as expected' do
|
42
|
-
subject.delete.from(gems, 30)
|
43
|
-
.where(
|
44
|
-
gems[:id].eq('45678')
|
45
|
-
)
|
40
|
+
subject.delete.from(gems, 30).where(gems[:id].eq('45678'))
|
46
41
|
|
47
|
-
expect(subject.sql).to eq('
|
42
|
+
expect(subject.sql).to eq('DELETE FROM `gems` PARTITION (p30) WHERE (`gems`.`id` = ?)')
|
48
43
|
expect(subject.params).to eq(['45678'])
|
49
44
|
end
|
50
45
|
|
51
46
|
it 'builds a basic select query as expected' do
|
52
|
-
subject.select('*')
|
53
|
-
.from(gems, 40)
|
54
|
-
.where(
|
55
|
-
gems[:id].eq('9876')
|
56
|
-
)
|
47
|
+
subject.select('*').from(gems, 40).where(gems[:id].eq('9876'))
|
57
48
|
|
58
|
-
expect(subject.sql).to eq('
|
49
|
+
expect(subject.sql).to eq('SELECT * FROM `gems` PARTITION (p40) WHERE (`gems`.`id` = ?)')
|
59
50
|
expect(subject.params).to eq(['9876'])
|
60
51
|
end
|
61
52
|
|
@@ -63,11 +54,9 @@ describe MysqlFramework::SqlQuery do
|
|
63
54
|
subject.select('*')
|
64
55
|
.from(gems, 40)
|
65
56
|
.join(versions).on(versions[:gem_id], gems[:id])
|
66
|
-
.where(
|
67
|
-
gems[:id].eq('9876')
|
68
|
-
)
|
57
|
+
.where(gems[:id].eq('9876'))
|
69
58
|
|
70
|
-
expect(subject.sql).to eq('
|
59
|
+
expect(subject.sql).to eq('SELECT * FROM `gems` PARTITION (p40) JOIN `versions` ON `versions`.`gem_id` = `gems`.`id` WHERE (`gems`.`id` = ?)')
|
71
60
|
expect(subject.params).to eq(['9876'])
|
72
61
|
end
|
73
62
|
end
|
@@ -75,27 +64,31 @@ describe MysqlFramework::SqlQuery do
|
|
75
64
|
describe '#select' do
|
76
65
|
it 'sets the sql for a select statement' do
|
77
66
|
subject.select(gems[:id], gems[:name])
|
78
|
-
|
67
|
+
|
68
|
+
expect(subject.sql).to eq('SELECT `gems`.`id`, `gems`.`name`')
|
79
69
|
end
|
80
70
|
end
|
81
71
|
|
82
72
|
describe '#delete' do
|
83
73
|
it 'sets the sql for a delete statement' do
|
84
74
|
subject.delete
|
85
|
-
|
75
|
+
|
76
|
+
expect(subject.sql).to eq('DELETE')
|
86
77
|
end
|
87
78
|
end
|
88
79
|
|
89
80
|
describe '#update' do
|
90
81
|
it 'sets the sql for an update statement' do
|
91
82
|
subject.update(gems)
|
92
|
-
|
83
|
+
|
84
|
+
expect(subject.sql).to eq('UPDATE `gems`')
|
93
85
|
end
|
94
86
|
|
95
87
|
context 'when a partition is specified' do
|
96
88
|
it 'sets the sql for an update statement' do
|
97
89
|
subject.update(gems, 25)
|
98
|
-
|
90
|
+
|
91
|
+
expect(subject.sql).to eq('UPDATE `gems` PARTITION (p25)')
|
99
92
|
end
|
100
93
|
end
|
101
94
|
end
|
@@ -103,13 +96,15 @@ describe MysqlFramework::SqlQuery do
|
|
103
96
|
describe '#insert' do
|
104
97
|
it 'sets the sql for an insert statement' do
|
105
98
|
subject.insert(gems)
|
106
|
-
|
99
|
+
|
100
|
+
expect(subject.sql).to eq('INSERT INTO `gems`')
|
107
101
|
end
|
108
102
|
|
109
103
|
context 'when a partition is specified' do
|
110
104
|
it 'sets the sql for an insert statement' do
|
111
105
|
subject.insert(gems, 35)
|
112
|
-
|
106
|
+
|
107
|
+
expect(subject.sql).to eq('INSERT INTO `gems` PARTITION (p35)')
|
113
108
|
end
|
114
109
|
end
|
115
110
|
end
|
@@ -117,55 +112,91 @@ describe MysqlFramework::SqlQuery do
|
|
117
112
|
describe '#into' do
|
118
113
|
it 'sets the sql for an into statement' do
|
119
114
|
subject.into(gems[:name], gems[:author], gems[:created_at])
|
120
|
-
|
115
|
+
|
116
|
+
expect(subject.sql).to eq('(`gems`.`name`, `gems`.`author`, `gems`.`created_at`)')
|
121
117
|
end
|
122
118
|
end
|
123
119
|
|
124
120
|
describe '#values' do
|
125
121
|
it 'sets the sql for the values statement' do
|
126
122
|
subject.values('mysql_framework', 'sage', '2016-06-28 10:00:00')
|
127
|
-
|
123
|
+
|
124
|
+
expect(subject.sql).to eq('VALUES (?, ?, ?)')
|
128
125
|
end
|
129
126
|
end
|
130
127
|
|
131
128
|
describe '#set' do
|
132
129
|
it 'sets the sql for the set statement' do
|
133
130
|
subject.set(name: 'mysql_framework', author: 'sage', created_at: '2016-06-28 10:00:00')
|
134
|
-
|
131
|
+
|
132
|
+
expect(subject.sql).to eq('SET `name` = ?, `author` = ?, `created_at` = ?')
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe '#increment' do
|
137
|
+
it 'appends the sql for the increment statement' do
|
138
|
+
subject.set(updated_at: '2016-01-15 19:00:00').increment(count: 1)
|
139
|
+
|
140
|
+
expect(subject.sql).to eq('SET `updated_at` = ?, `count` = `count` + 1')
|
141
|
+
end
|
142
|
+
|
143
|
+
context 'when a set statement has not been issued' do
|
144
|
+
it 'appends the sql for the increment statement' do
|
145
|
+
subject.increment(count: 1)
|
146
|
+
|
147
|
+
expect(subject.sql).to eq('SET `count` = `count` + 1')
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
describe '#decrement' do
|
153
|
+
it 'appends the sql for the decrement statement' do
|
154
|
+
subject.set(updated_at: '2016-01-15 19:00:00').decrement(count: 1)
|
155
|
+
|
156
|
+
expect(subject.sql).to eq('SET `updated_at` = ?, `count` = `count` - 1')
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'when a set statement has not been issued' do
|
160
|
+
it 'appends the sql for the decrement statement' do
|
161
|
+
subject.decrement(count: 1)
|
162
|
+
|
163
|
+
expect(subject.sql).to eq('SET `count` = `count` - 1')
|
164
|
+
end
|
135
165
|
end
|
136
166
|
end
|
137
167
|
|
138
168
|
describe '#from' do
|
139
169
|
it 'sets the sql for a from statement' do
|
140
170
|
subject.from(gems)
|
141
|
-
|
171
|
+
|
172
|
+
expect(subject.sql).to eq('FROM `gems`')
|
142
173
|
end
|
143
174
|
|
144
175
|
context 'when a partition is specified' do
|
145
176
|
it 'sets the sql for a from statement' do
|
146
177
|
subject.from(gems, 45)
|
147
|
-
|
178
|
+
|
179
|
+
expect(subject.sql).to eq('FROM `gems` PARTITION (p45)')
|
148
180
|
end
|
149
181
|
end
|
150
182
|
end
|
151
183
|
|
152
184
|
describe '#where' do
|
153
|
-
before
|
154
|
-
subject.where(gems['author'].eq('sage'), gems['created_at'].gt('2018-01-01 00:00:00'))
|
155
|
-
end
|
185
|
+
before(:each) { subject.where(gems[:author].eq('sage'), gems[:created_at].gt('2018-01-01 00:00:00')) }
|
156
186
|
|
157
187
|
it 'appends where to the sql' do
|
158
|
-
expect(subject.sql).to include('
|
188
|
+
expect(subject.sql).to include('WHERE')
|
159
189
|
end
|
160
190
|
|
161
191
|
it 'sets the sql for the where statement' do
|
162
|
-
expect(subject.sql).to eq('
|
192
|
+
expect(subject.sql).to eq('WHERE (`gems`.`author` = ? AND `gems`.`created_at` > ?)')
|
163
193
|
end
|
164
194
|
|
165
195
|
context 'when the sql already contains a where' do
|
166
196
|
it 'does not append an extra where' do
|
167
|
-
subject.and.where(gems[
|
168
|
-
|
197
|
+
subject.and.where(gems[:name].eq('mysql_framework'))
|
198
|
+
|
199
|
+
expect(subject.sql).to eq('WHERE (`gems`.`author` = ? AND `gems`.`created_at` > ?) AND (`gems`.`name` = ?)')
|
169
200
|
end
|
170
201
|
end
|
171
202
|
end
|
@@ -173,56 +204,106 @@ describe MysqlFramework::SqlQuery do
|
|
173
204
|
describe '#and' do
|
174
205
|
it 'appends the sql for an and statement' do
|
175
206
|
subject.and
|
176
|
-
|
207
|
+
|
208
|
+
expect(subject.sql).to eq('AND')
|
177
209
|
end
|
178
210
|
end
|
179
211
|
|
180
212
|
describe '#or' do
|
181
213
|
it 'appends the sql for an or statement' do
|
182
214
|
subject.or
|
183
|
-
|
215
|
+
|
216
|
+
expect(subject.sql).to eq('OR')
|
184
217
|
end
|
185
218
|
end
|
186
219
|
|
187
220
|
describe '#order' do
|
188
221
|
it 'appends the sql for an order statement' do
|
189
222
|
subject.order(gems[:created_at], gems[:updated_at])
|
190
|
-
|
223
|
+
|
224
|
+
expect(subject.sql).to eq('ORDER BY `gems`.`created_at`, `gems`.`updated_at`')
|
191
225
|
end
|
192
226
|
end
|
193
227
|
|
194
228
|
describe '#order_desc' do
|
195
229
|
it 'appends the sql for an order descending statement' do
|
196
230
|
subject.order_desc(gems[:created_at], gems[:updated_at])
|
197
|
-
|
231
|
+
|
232
|
+
expect(subject.sql).to eq('ORDER BY `gems`.`created_at`, `gems`.`updated_at` DESC')
|
198
233
|
end
|
199
234
|
end
|
200
235
|
|
201
236
|
describe '#limit' do
|
202
237
|
it 'appends the sql for a limit statement' do
|
203
238
|
subject.limit(10)
|
204
|
-
|
239
|
+
|
240
|
+
expect(subject.sql).to eq('LIMIT 10')
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
describe '#offset' do
|
245
|
+
it 'appends the sql for an offset statement' do
|
246
|
+
subject.limit(10).offset(5)
|
247
|
+
|
248
|
+
expect(subject.sql).to eq('LIMIT 10 OFFSET 5')
|
249
|
+
end
|
250
|
+
|
251
|
+
context 'when a limit statement is not found' do
|
252
|
+
it 'raises an error' do
|
253
|
+
expect { subject.offset(5) }.to raise_error(RuntimeError)
|
254
|
+
end
|
205
255
|
end
|
206
256
|
end
|
207
257
|
|
208
258
|
describe '#join' do
|
209
259
|
it 'appends the sql for a join statement' do
|
210
260
|
subject.join(versions)
|
211
|
-
|
261
|
+
|
262
|
+
expect(subject.sql).to eq('JOIN `versions`')
|
263
|
+
end
|
264
|
+
|
265
|
+
context 'when a type is supplied' do
|
266
|
+
it 'appends the sql for a join statement' do
|
267
|
+
subject.join(versions, type: 'LEFT OUTER')
|
268
|
+
|
269
|
+
expect(subject.sql).to eq('LEFT OUTER JOIN `versions`')
|
270
|
+
end
|
212
271
|
end
|
213
272
|
end
|
214
273
|
|
215
274
|
describe '#on' do
|
216
275
|
it 'appends the sql for the on statement' do
|
217
276
|
subject.on(gems[:id], versions[:gem_id])
|
218
|
-
|
277
|
+
|
278
|
+
expect(subject.sql).to eq('ON `gems`.`id` = `versions`.`gem_id`')
|
219
279
|
end
|
220
280
|
end
|
221
281
|
|
222
282
|
describe '#group_by' do
|
223
283
|
it 'appends the sql for a group by statement' do
|
224
284
|
subject.group_by(gems[:created_at], gems[:updated_at])
|
225
|
-
|
285
|
+
|
286
|
+
expect(subject.sql).to eq('GROUP BY `gems`.`created_at`, `gems`.`updated_at`')
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
describe '#having' do
|
291
|
+
before(:each) { subject.having(gems[:count].gt(1), gems[:count].lt(10)) }
|
292
|
+
|
293
|
+
it 'appends having to the sql' do
|
294
|
+
expect(subject.sql).to include('HAVING')
|
295
|
+
end
|
296
|
+
|
297
|
+
it 'sets the sql for the having statement' do
|
298
|
+
expect(subject.sql).to eq('HAVING (`gems`.`count` > ? AND `gems`.`count` < ?)')
|
299
|
+
end
|
300
|
+
|
301
|
+
context 'when the sql already contains a having' do
|
302
|
+
it 'does not append an extra having' do
|
303
|
+
subject.or.having(gems[:count].gt(20))
|
304
|
+
|
305
|
+
expect(subject.sql).to eq('HAVING (`gems`.`count` > ? AND `gems`.`count` < ?) OR (`gems`.`count` > ?)')
|
306
|
+
end
|
226
307
|
end
|
227
308
|
end
|
228
309
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mysql_framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sage
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|