dbee-active_record 2.1.1 → 2.1.2
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/.rubocop.yml +1 -1
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/dbee-active_record.gemspec +5 -4
- data/lib/dbee/providers/active_record_provider/makers/where.rb +26 -6
- data/lib/dbee/providers/active_record_provider/version.rb +1 -1
- data/spec/dbee/providers/active_record_provider/makers/where_spec.rb +260 -0
- data/spec/spec_helper.rb +1 -1
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ec480363c33c49f4dd4cd5de9023b6ddad2f3d8b39ee90b4a67bc282a2b35f3
|
4
|
+
data.tar.gz: 6db9e48a3bb04e73ae91f01c63640b36db530f04a06245462b4e4d72e2f083c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 694720a4ff3a557ebdf03cf94bb38010e9c52eacbf188c26f4b3e6e6c7adbd08353e31aae214797bbc79e7493f9d53f178b866b017e4c5feba13a23d253b1449
|
7
|
+
data.tar.gz: 7ba4120f8e7ddc71b2f7d2783c854f9f6ac5b1935260fb7c769d96f1e0ac900ffa8cbb2b3233dd7ccd4d3e7b38d4c702dc9a142a29fd45a2258b0e27ad69ad42
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/dbee-active_record.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
By default Dbee ships with no underlying SQL generator. This library will plug in ActiveRecord into Dbee and Dbee will use it for SQL generation.
|
12
12
|
DESCRIPTION
|
13
13
|
|
14
|
-
s.authors = ['Matthew Ruggio']
|
15
|
-
s.email = ['mruggio@bluemarblepayroll.com']
|
14
|
+
s.authors = ['Matthew Ruggio', 'Craig Kattner']
|
15
|
+
s.email = ['mruggio@bluemarblepayroll.com', 'ckattner@bluemarblepayroll.com']
|
16
16
|
s.files = `git ls-files`.split("\n")
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.bindir = 'exe'
|
@@ -47,10 +47,11 @@ Gem::Specification.new do |s|
|
|
47
47
|
s.add_development_dependency('guard-rspec', '~>4.7')
|
48
48
|
s.add_development_dependency('mysql2', '~>0.5')
|
49
49
|
s.add_development_dependency('pry', '~>0')
|
50
|
+
s.add_development_dependency('pry-byebug')
|
50
51
|
s.add_development_dependency('rake', '~> 13')
|
51
52
|
s.add_development_dependency('rspec', '~> 3.8')
|
52
|
-
s.add_development_dependency('rubocop', '~>0.
|
53
|
-
s.add_development_dependency('simplecov', '~>0.
|
53
|
+
s.add_development_dependency('rubocop', '~>0.90.0')
|
54
|
+
s.add_development_dependency('simplecov', '~>0.19.0')
|
54
55
|
s.add_development_dependency('simplecov-console', '~>0.7.0')
|
55
56
|
s.add_development_dependency('sqlite3', '~>1')
|
56
57
|
end
|
@@ -16,14 +16,20 @@ module Dbee
|
|
16
16
|
include Singleton
|
17
17
|
|
18
18
|
def make(filter, arel_column)
|
19
|
-
# If the filter has a value of nil, then simply return an IS NULL predicate
|
20
|
-
return make_is_null_predicate(arel_column)
|
19
|
+
# If the filter has a value of nil, then simply return an IS (NOT) NULL predicate
|
20
|
+
return make_is_null_predicate(arel_column, filter.class) if filter.value.nil?
|
21
21
|
|
22
22
|
values = Array(filter.value).flatten
|
23
23
|
|
24
24
|
# This logic helps ensure that if a null exists that it translates to an IS NULL
|
25
25
|
# predicate and does not get put into an in or not_in clause.
|
26
|
-
predicates =
|
26
|
+
predicates =
|
27
|
+
if values.include?(nil)
|
28
|
+
[make_is_null_predicate(arel_column, filter.class)]
|
29
|
+
else
|
30
|
+
[]
|
31
|
+
end
|
32
|
+
|
27
33
|
predicates += make_predicates(filter, arel_column, values - [nil])
|
28
34
|
|
29
35
|
# Chain all predicates together
|
@@ -47,7 +53,20 @@ module Dbee
|
|
47
53
|
Query::Filters::StartsWith => ->(node, val) { node.matches("#{val}%") }
|
48
54
|
}.freeze
|
49
55
|
|
50
|
-
|
56
|
+
NULL_PREDICATE_MAP = {
|
57
|
+
Query::Filters::Contains => Query::Filters::Equals,
|
58
|
+
Query::Filters::Equals => Query::Filters::Equals,
|
59
|
+
Query::Filters::GreaterThan => Query::Filters::Equals,
|
60
|
+
Query::Filters::GreaterThanOrEqualTo => Query::Filters::Equals,
|
61
|
+
Query::Filters::LessThan => Query::Filters::Equals,
|
62
|
+
Query::Filters::LessThanOrEqualTo => Query::Filters::Equals,
|
63
|
+
Query::Filters::NotContain => Query::Filters::NotEquals,
|
64
|
+
Query::Filters::NotEquals => Query::Filters::NotEquals,
|
65
|
+
Query::Filters::NotStartWith => Query::Filters::NotEquals,
|
66
|
+
Query::Filters::StartsWith => Query::Filters::Equals
|
67
|
+
}.freeze
|
68
|
+
|
69
|
+
private_constant :FILTER_EVALUATORS, :NULL_PREDICATE_MAP
|
51
70
|
|
52
71
|
def make_predicates(filter, arel_column, values)
|
53
72
|
if use_in?(filter, values)
|
@@ -81,8 +100,9 @@ module Dbee
|
|
81
100
|
method.call(arel_column, value)
|
82
101
|
end
|
83
102
|
|
84
|
-
def make_is_null_predicate(arel_column)
|
85
|
-
|
103
|
+
def make_is_null_predicate(arel_column, requested_filter_class)
|
104
|
+
actual_filter_class = NULL_PREDICATE_MAP[requested_filter_class]
|
105
|
+
make_predicate(arel_column, actual_filter_class, nil)
|
86
106
|
end
|
87
107
|
end
|
88
108
|
end
|
@@ -0,0 +1,260 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Copyright (c) 2020-present, Blue Marble Payroll, LLC
|
5
|
+
#
|
6
|
+
# This source code is licensed under the MIT license found in the
|
7
|
+
# LICENSE file in the root directory of this source tree.
|
8
|
+
#
|
9
|
+
|
10
|
+
require 'spec_helper'
|
11
|
+
require 'db_helper'
|
12
|
+
|
13
|
+
# rubocop:disable Layout/LineLength
|
14
|
+
# Disable the line length cop beause there are some lengthy 'expected' SQL strings in spec which
|
15
|
+
# cannot be shortened.
|
16
|
+
describe Dbee::Providers::ActiveRecordProvider::Makers::Where do
|
17
|
+
before(:all) { connect_to_db(:sqlite) }
|
18
|
+
|
19
|
+
let(:subject) { described_class.instance }
|
20
|
+
let(:column) { Arel::Table.new(:test)[:foo] }
|
21
|
+
|
22
|
+
describe 'equals' do
|
23
|
+
specify 'a string value' do
|
24
|
+
filter = Dbee::Query::Filters::Equals.new(key_path: :foo, value: 'bar')
|
25
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" = 'bar')
|
26
|
+
end
|
27
|
+
|
28
|
+
specify 'a null value' do
|
29
|
+
filter = Dbee::Query::Filters::Equals.new(key_path: :foo, value: nil)
|
30
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
31
|
+
end
|
32
|
+
|
33
|
+
specify 'a set with a null value' do
|
34
|
+
filter = Dbee::Query::Filters::Equals.new(key_path: :foo, value: ['a', nil, 'c'])
|
35
|
+
expected = %q[("test"."foo" IS NULL OR "test"."foo" IN ('a', 'c'))]
|
36
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
37
|
+
end
|
38
|
+
|
39
|
+
specify 'a set without a null value' do
|
40
|
+
filter = Dbee::Query::Filters::Equals.new(key_path: :foo, value: %w[a b c])
|
41
|
+
expect(subject.make(filter, column).to_sql).to eq %q["test"."foo" IN ('a', 'b', 'c')]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'not equals' do
|
46
|
+
specify 'a string value' do
|
47
|
+
filter = Dbee::Query::Filters::NotEquals.new(key_path: :foo, value: 'bar')
|
48
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" != 'bar')
|
49
|
+
end
|
50
|
+
|
51
|
+
specify 'a null value' do
|
52
|
+
filter = Dbee::Query::Filters::NotEquals.new(key_path: :foo, value: nil)
|
53
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NOT NULL'
|
54
|
+
end
|
55
|
+
|
56
|
+
specify 'a set with a null value' do
|
57
|
+
filter = Dbee::Query::Filters::NotEquals.new(key_path: :foo, value: ['a', nil, 'c'])
|
58
|
+
expected = %q[("test"."foo" IS NOT NULL OR "test"."foo" NOT IN ('a', 'c'))]
|
59
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
60
|
+
end
|
61
|
+
|
62
|
+
specify 'a set without a null value' do
|
63
|
+
filter = Dbee::Query::Filters::NotEquals.new(key_path: :foo, value: %w[a b c])
|
64
|
+
expect(subject.make(filter, column).to_sql).to eq %q["test"."foo" NOT IN ('a', 'b', 'c')]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe 'contains' do
|
69
|
+
specify 'a string value' do
|
70
|
+
filter = Dbee::Query::Filters::Contains.new(key_path: :foo, value: 'bar')
|
71
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" LIKE '%bar%')
|
72
|
+
end
|
73
|
+
|
74
|
+
specify 'a null value' do
|
75
|
+
filter = Dbee::Query::Filters::Contains.new(key_path: :foo, value: nil)
|
76
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
77
|
+
end
|
78
|
+
|
79
|
+
specify 'a set with a null value' do
|
80
|
+
filter = Dbee::Query::Filters::Contains.new(key_path: :foo, value: ['a', nil, 'c'])
|
81
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" LIKE '%a%') OR "test"."foo" LIKE '%c%')]
|
82
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
83
|
+
end
|
84
|
+
|
85
|
+
specify 'a set without a null value' do
|
86
|
+
filter = Dbee::Query::Filters::Contains.new(key_path: :foo, value: %w[a b c])
|
87
|
+
expected = %q[(("test"."foo" LIKE '%a%' OR "test"."foo" LIKE '%b%') OR "test"."foo" LIKE '%c%')]
|
88
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe 'not contains' do
|
93
|
+
specify 'a string value' do
|
94
|
+
filter = Dbee::Query::Filters::NotContain.new(key_path: :foo, value: 'bar')
|
95
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" NOT LIKE '%bar%')
|
96
|
+
end
|
97
|
+
|
98
|
+
specify 'a null value' do
|
99
|
+
filter = Dbee::Query::Filters::NotContain.new(key_path: :foo, value: nil)
|
100
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NOT NULL'
|
101
|
+
end
|
102
|
+
|
103
|
+
specify 'a set with a null value' do
|
104
|
+
filter = Dbee::Query::Filters::NotContain.new(key_path: :foo, value: ['a', nil, 'c'])
|
105
|
+
expected = %q[(("test"."foo" IS NOT NULL OR "test"."foo" NOT LIKE '%a%') OR "test"."foo" NOT LIKE '%c%')]
|
106
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
107
|
+
end
|
108
|
+
|
109
|
+
specify 'a set without a null value' do
|
110
|
+
filter = Dbee::Query::Filters::NotContain.new(key_path: :foo, value: %w[a b c])
|
111
|
+
expected = %q[(("test"."foo" NOT LIKE '%a%' OR "test"."foo" NOT LIKE '%b%') OR "test"."foo" NOT LIKE '%c%')]
|
112
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe 'starts with' do
|
117
|
+
specify 'a string value' do
|
118
|
+
filter = Dbee::Query::Filters::StartsWith.new(key_path: :foo, value: 'bar')
|
119
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" LIKE 'bar%')
|
120
|
+
end
|
121
|
+
|
122
|
+
specify 'a null value' do
|
123
|
+
filter = Dbee::Query::Filters::StartsWith.new(key_path: :foo, value: nil)
|
124
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
125
|
+
end
|
126
|
+
|
127
|
+
specify 'a set with a null value' do
|
128
|
+
filter = Dbee::Query::Filters::StartsWith.new(key_path: :foo, value: ['a', nil, 'c'])
|
129
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" LIKE 'a%') OR "test"."foo" LIKE 'c%')]
|
130
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
131
|
+
end
|
132
|
+
|
133
|
+
specify 'a set without a null value' do
|
134
|
+
filter = Dbee::Query::Filters::StartsWith.new(key_path: :foo, value: %w[a b c])
|
135
|
+
expected = %q[(("test"."foo" LIKE 'a%' OR "test"."foo" LIKE 'b%') OR "test"."foo" LIKE 'c%')]
|
136
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
describe 'not start with' do
|
141
|
+
specify 'a string value' do
|
142
|
+
filter = Dbee::Query::Filters::NotStartWith.new(key_path: :foo, value: 'bar')
|
143
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" NOT LIKE 'bar%')
|
144
|
+
end
|
145
|
+
|
146
|
+
specify 'a null value' do
|
147
|
+
filter = Dbee::Query::Filters::NotStartWith.new(key_path: :foo, value: nil)
|
148
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NOT NULL'
|
149
|
+
end
|
150
|
+
|
151
|
+
specify 'a set with a null value' do
|
152
|
+
filter = Dbee::Query::Filters::NotStartWith.new(key_path: :foo, value: ['a', nil, 'c'])
|
153
|
+
expected = %q[(("test"."foo" IS NOT NULL OR "test"."foo" NOT LIKE 'a%') OR "test"."foo" NOT LIKE 'c%')]
|
154
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
155
|
+
end
|
156
|
+
|
157
|
+
specify 'a set without a null value' do
|
158
|
+
filter = Dbee::Query::Filters::NotStartWith.new(key_path: :foo, value: %w[a b c])
|
159
|
+
expected = %q[(("test"."foo" NOT LIKE 'a%' OR "test"."foo" NOT LIKE 'b%') OR "test"."foo" NOT LIKE 'c%')]
|
160
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe 'greater than' do
|
165
|
+
specify 'a string value' do
|
166
|
+
filter = Dbee::Query::Filters::GreaterThan.new(key_path: :foo, value: 'bar')
|
167
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" > 'bar')
|
168
|
+
end
|
169
|
+
|
170
|
+
specify 'a null value' do
|
171
|
+
filter = Dbee::Query::Filters::GreaterThan.new(key_path: :foo, value: nil)
|
172
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
173
|
+
end
|
174
|
+
|
175
|
+
specify 'a set with a null value' do
|
176
|
+
filter = Dbee::Query::Filters::GreaterThan.new(key_path: :foo, value: ['a', nil, 'c'])
|
177
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" > 'a') OR "test"."foo" > 'c')]
|
178
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
179
|
+
end
|
180
|
+
|
181
|
+
specify 'a set without a null value' do
|
182
|
+
filter = Dbee::Query::Filters::GreaterThan.new(key_path: :foo, value: %w[a b c])
|
183
|
+
expected = %q[(("test"."foo" > 'a' OR "test"."foo" > 'b') OR "test"."foo" > 'c')]
|
184
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
describe 'greater than or equal to' do
|
189
|
+
specify 'a string value' do
|
190
|
+
filter = Dbee::Query::Filters::GreaterThanOrEqualTo.new(key_path: :foo, value: 'bar')
|
191
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" >= 'bar')
|
192
|
+
end
|
193
|
+
|
194
|
+
specify 'a null value' do
|
195
|
+
filter = Dbee::Query::Filters::GreaterThanOrEqualTo.new(key_path: :foo, value: nil)
|
196
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
197
|
+
end
|
198
|
+
|
199
|
+
specify 'a set with a null value' do
|
200
|
+
filter = Dbee::Query::Filters::GreaterThanOrEqualTo.new(key_path: :foo, value: ['a', nil, 'c'])
|
201
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" >= 'a') OR "test"."foo" >= 'c')]
|
202
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
203
|
+
end
|
204
|
+
|
205
|
+
specify 'a set without a null value' do
|
206
|
+
filter = Dbee::Query::Filters::GreaterThanOrEqualTo.new(key_path: :foo, value: %w[a b c])
|
207
|
+
expected = %q[(("test"."foo" >= 'a' OR "test"."foo" >= 'b') OR "test"."foo" >= 'c')]
|
208
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
describe 'less than' do
|
213
|
+
specify 'a string value' do
|
214
|
+
filter = Dbee::Query::Filters::LessThan.new(key_path: :foo, value: 'bar')
|
215
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" < 'bar')
|
216
|
+
end
|
217
|
+
|
218
|
+
specify 'a null value' do
|
219
|
+
filter = Dbee::Query::Filters::LessThan.new(key_path: :foo, value: nil)
|
220
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
221
|
+
end
|
222
|
+
|
223
|
+
specify 'a set with a null value' do
|
224
|
+
filter = Dbee::Query::Filters::LessThan.new(key_path: :foo, value: ['a', nil, 'c'])
|
225
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" < 'a') OR "test"."foo" < 'c')]
|
226
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
227
|
+
end
|
228
|
+
|
229
|
+
specify 'a set without a null value' do
|
230
|
+
filter = Dbee::Query::Filters::LessThan.new(key_path: :foo, value: %w[a b c])
|
231
|
+
expected = %q[(("test"."foo" < 'a' OR "test"."foo" < 'b') OR "test"."foo" < 'c')]
|
232
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
describe 'less than or equal to' do
|
237
|
+
specify 'a string value' do
|
238
|
+
filter = Dbee::Query::Filters::LessThanOrEqualTo.new(key_path: :foo, value: 'bar')
|
239
|
+
expect(subject.make(filter, column).to_sql).to eq %q("test"."foo" <= 'bar')
|
240
|
+
end
|
241
|
+
|
242
|
+
specify 'a null value' do
|
243
|
+
filter = Dbee::Query::Filters::LessThanOrEqualTo.new(key_path: :foo, value: nil)
|
244
|
+
expect(subject.make(filter, column).to_sql).to eq '"test"."foo" IS NULL'
|
245
|
+
end
|
246
|
+
|
247
|
+
specify 'a set with a null value' do
|
248
|
+
filter = Dbee::Query::Filters::LessThanOrEqualTo.new(key_path: :foo, value: ['a', nil, 'c'])
|
249
|
+
expected = %q[(("test"."foo" IS NULL OR "test"."foo" <= 'a') OR "test"."foo" <= 'c')]
|
250
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
251
|
+
end
|
252
|
+
|
253
|
+
specify 'a set without a null value' do
|
254
|
+
filter = Dbee::Query::Filters::LessThanOrEqualTo.new(key_path: :foo, value: %w[a b c])
|
255
|
+
expected = %q[(("test"."foo" <= 'a' OR "test"."foo" <= 'b') OR "test"."foo" <= 'c')]
|
256
|
+
expect(subject.make(filter, column).to_sql).to eq expected
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
260
|
+
# rubocop:enable Layout/LineLength
|
data/spec/spec_helper.rb
CHANGED
@@ -35,7 +35,7 @@ def fixture(*filename)
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def yaml_fixture_files(*directory)
|
38
|
-
Dir[File.join('spec', 'fixtures', *directory, '*.yaml')].map do |filename|
|
38
|
+
Dir[File.join('spec', 'fixtures', *directory, '**', '*.yaml')].map do |filename|
|
39
39
|
[
|
40
40
|
filename,
|
41
41
|
yaml_file_read(filename)
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbee-active_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Ruggio
|
8
|
+
- Craig Kattner
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2020-
|
12
|
+
date: 2020-10-15 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activerecord
|
@@ -92,6 +93,20 @@ dependencies:
|
|
92
93
|
- - "~>"
|
93
94
|
- !ruby/object:Gem::Version
|
94
95
|
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: pry-byebug
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
95
110
|
- !ruby/object:Gem::Dependency
|
96
111
|
name: rake
|
97
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,28 +141,28 @@ dependencies:
|
|
126
141
|
requirements:
|
127
142
|
- - "~>"
|
128
143
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.
|
144
|
+
version: 0.90.0
|
130
145
|
type: :development
|
131
146
|
prerelease: false
|
132
147
|
version_requirements: !ruby/object:Gem::Requirement
|
133
148
|
requirements:
|
134
149
|
- - "~>"
|
135
150
|
- !ruby/object:Gem::Version
|
136
|
-
version: 0.
|
151
|
+
version: 0.90.0
|
137
152
|
- !ruby/object:Gem::Dependency
|
138
153
|
name: simplecov
|
139
154
|
requirement: !ruby/object:Gem::Requirement
|
140
155
|
requirements:
|
141
156
|
- - "~>"
|
142
157
|
- !ruby/object:Gem::Version
|
143
|
-
version: 0.
|
158
|
+
version: 0.19.0
|
144
159
|
type: :development
|
145
160
|
prerelease: false
|
146
161
|
version_requirements: !ruby/object:Gem::Requirement
|
147
162
|
requirements:
|
148
163
|
- - "~>"
|
149
164
|
- !ruby/object:Gem::Version
|
150
|
-
version: 0.
|
165
|
+
version: 0.19.0
|
151
166
|
- !ruby/object:Gem::Dependency
|
152
167
|
name: simplecov-console
|
153
168
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,6 +195,7 @@ description: " By default Dbee ships with no underlying SQL generator. This
|
|
180
195
|
will plug in ActiveRecord into Dbee and Dbee will use it for SQL generation.\n"
|
181
196
|
email:
|
182
197
|
- mruggio@bluemarblepayroll.com
|
198
|
+
- ckattner@bluemarblepayroll.com
|
183
199
|
executables: []
|
184
200
|
extensions: []
|
185
201
|
extra_rdoc_files: []
|
@@ -212,6 +228,7 @@ files:
|
|
212
228
|
- spec/config/database.yaml.ci
|
213
229
|
- spec/db_helper.rb
|
214
230
|
- spec/dbee/providers/active_record_provider/expression_builder_spec.rb
|
231
|
+
- spec/dbee/providers/active_record_provider/makers/where_spec.rb
|
215
232
|
- spec/dbee/providers/active_record_provider_spec.rb
|
216
233
|
- spec/fixtures/active_record_snapshots/five_table_query.yaml
|
217
234
|
- spec/fixtures/active_record_snapshots/multiple_same_table_query_with_static_constraints.yaml
|
@@ -262,6 +279,7 @@ test_files:
|
|
262
279
|
- spec/config/database.yaml.ci
|
263
280
|
- spec/db_helper.rb
|
264
281
|
- spec/dbee/providers/active_record_provider/expression_builder_spec.rb
|
282
|
+
- spec/dbee/providers/active_record_provider/makers/where_spec.rb
|
265
283
|
- spec/dbee/providers/active_record_provider_spec.rb
|
266
284
|
- spec/fixtures/active_record_snapshots/five_table_query.yaml
|
267
285
|
- spec/fixtures/active_record_snapshots/multiple_same_table_query_with_static_constraints.yaml
|