soql_builder 1.0.2 → 1.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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/soql_builder.rb +13 -34
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f39b0685480107f7c3d34354068d72ba15692386577f25b915e3f28e2de4f4f7
4
- data.tar.gz: 7263ee8cacd3e668f4d3a24610b752c1f8febda5ca92dc49fe354fe3db875ac1
3
+ metadata.gz: d69897011cdeac19a7e60a65f656293e2583babdaeb03949e51e4e8b8ae20476
4
+ data.tar.gz: 42a1f2edf13a64631c6ada685688743c6997d8c69f63e0afd77258df00cbc43a
5
5
  SHA512:
6
- metadata.gz: 4839627d81a29083c1652c5719c5d12fecd6f779ea610578a9632435d248b17acc6c54d0889c6cab21a583c7ebf64d0de5528940d108de85ba6adfc8ddd8dfad
7
- data.tar.gz: 274be243536bb5a2610765ce097fa901947d7aed44022223460eb3038e85c6905f7bef159c2c1abac8223c4fe02a75dadb3b23f7310b0f06b77df6c53ffa34d4
6
+ metadata.gz: 01a964d1cb4137e711f14acea022cb15f5fbbc7ad53077d7ae36b2bff2f15a7fea202e34e78905a2bf61e4dcd86e3aa31a431d767147221cf3ab4f63958a8671
7
+ data.tar.gz: b13b9640f132ff219bf4fcde0b7034506f3168a394c6c485094d107a140dcd7b70401e66f35143403d07b1fa8672fa802663b69b843990d87d9e4aad5b487331
@@ -1,60 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative './soql/query'
4
+
3
5
  class SoqlBuilder
4
- TYPES = {
5
- select: 'select'
6
- }.freeze
7
-
8
- def initialize(type:)
9
- @query = {
10
- type: TYPES[type],
11
- fields: [],
12
- subquery: {
13
- object_table: '',
14
- fields: []
15
- },
16
- object_table: '',
17
- where: '',
18
- }
6
+ def initialize(type:, query: nil)
7
+ @query = query || Soql::Query.new
8
+ @query.type = type
19
9
  end
20
10
 
21
11
  def query
22
- structure_query
12
+ @query.structure_query
23
13
  end
24
14
 
25
15
  def fields(fields = [])
26
- @query[:fields] = fields
16
+ @query.fields = fields
27
17
  self
28
18
  end
29
19
 
30
20
  def add_subquery(table:, fields: [])
31
- @query[:subquery][:object_table] = table
32
- @query[:subquery][:fields] = fields
21
+ @query.subquery[:object_table] = table
22
+ @query.subquery[:fields] = fields
33
23
  self
34
24
  end
35
25
 
36
26
  def from(table)
37
- @query[:object_table] = table
27
+ @query.object_table = table
38
28
  self
39
29
  end
40
30
 
41
31
  def where(where_condition)
42
- @query[:where] = where_condition
32
+ @query.where = where_condition
43
33
  self
44
34
  end
45
35
 
46
- private
47
-
48
- def structure_query
49
- qs = @query[:type]
50
- qs += " #{join_fields(@query[:fields])}" unless @query[:fields].empty?
51
- qs += ", (select #{ join_fields(@query[:subquery][:fields]) } from #{ @query[:subquery][:object_table] })" unless @query[:subquery][:fields].empty?
52
- qs += " from #{@query[:object_table]}"
53
- qs += " where #{@query[:where]}" unless @query[:where] == ''
54
- qs
55
- end
56
-
57
- def join_fields(fields)
58
- fields.join(', ')
36
+ def limit(limit_number)
37
+ @query.limit = limit_number.to_s
59
38
  end
60
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soql_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Avlonitis