active_force 0.15.0 → 0.15.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 661e75020c19d46986c8556c2e39799831468741b96909bab00f40d3ffb1294c
4
- data.tar.gz: c2549061250e05f2f145c3129c4f83c1d973b09097c77e03592b68b892f54e02
3
+ metadata.gz: c325fe186d67cce9500a1df17360184bd97c2fa26fed2819b327f3ea8331df7c
4
+ data.tar.gz: 482d5c2fabed72c3d12b646037dad7900f26e17260000a65e171d42ab41ce394
5
5
  SHA512:
6
- metadata.gz: 2bb66f6e4278cc3552200adef1cf4bff72ee01681253b573aa28fb1f8f410bb09a836c043b0b9dc1f1df744167050a03c8ca538f0a1cbc025645ca6ebe90a6ef
7
- data.tar.gz: e5e52a99e28c971a1fe7e4a7135031bfa15cbeeadb1c782a1252915ba593699bda99b0f1a6f832c673d129cdc10ed2527ecff391144c4db30783af87bd40090b
6
+ metadata.gz: 05a36678b1ba07b3e89b1a755e7526facd18cdef04cdfcb9dd1b08224f42bbcc779959c26e869a3ead38e5add649d710e4afc4f0c1f88cdbcd73287360da3f7a
7
+ data.tar.gz: 13724331bdafe67729dafd0ca31a863657e125c8bb458fb8a0316aa5a2fba9f466c0e3ff52bc6fbc80a9190639636e726ac8c9940cc92836260b774cc7024ec5
data/CHANGELOG.md CHANGED
@@ -1,12 +1,17 @@
1
1
  # Changelog
2
2
 
3
3
  ## Not released
4
+
5
+ ## 0.15.1
6
+
7
+ - Revert new `pluck` implementation due to compatibility issues (https://github.com/Beyond-Finance/active_force/pull/60)
8
+
4
9
  ## 0.15.0
10
+
5
11
  - Fix model defaults so data is persisted in Salesforce (https://github.com/Beyond-Finance/active_force/pull/55)
6
12
  - Add `pluck` query method (https://github.com/Beyond-Finance/active_force/pull/51)
7
13
  - Add `#order` method to active query that accepts arguments in several formats ( symbol, string that has raw soql) (https://github.com/Beyond-Finance/active_force/pull/58)
8
14
 
9
-
10
15
  ## 0.14.0
11
16
 
12
17
  - Add `scoped_as` option to `has_one` association (https://github.com/Beyond-Finance/active_force/pull/50)
@@ -51,15 +51,6 @@ module ActiveForce
51
51
  sfdc_client.query(to_s).first.expr0
52
52
  end
53
53
 
54
- def pluck(*fields)
55
- fields = mappings.keys if fields.blank?
56
-
57
- sfdc_client.query(select(*fields).to_s).map do |record|
58
- values = fields.map { |field| cast_value(field, record) }
59
- values.length == 1 ? values.first : values
60
- end
61
- end
62
-
63
54
  def limit limit
64
55
  super
65
56
  limit == 1 ? to_a.first : self
@@ -217,12 +208,6 @@ module ActiveForce
217
208
  sfdc_client.query(self.to_s)
218
209
  end
219
210
 
220
- def cast_value(field, object)
221
- attribute_type = sobject.attribute_types[field.to_s]
222
- value = object[mappings[field]]
223
- attribute_type&.cast(value) || value
224
- end
225
-
226
211
  def clone_self_and_clear_cache
227
212
  new_query = self.clone
228
213
  new_query.instance_variable_set(:@decorated_records, nil)
@@ -29,8 +29,7 @@ module ActiveForce
29
29
 
30
30
  class << self
31
31
  extend Forwardable
32
- def_delegators :query, :not, :or, :where, :first, :last, :all, :find, :find!, :find_by, :find_by!, :sum, :count,
33
- :includes, :limit, :order, :select, :none, :pluck
32
+ def_delegators :query, :not, :or, :where, :first, :last, :all, :find, :find!, :find_by, :find_by!, :sum, :count, :includes, :limit, :order, :select, :none
34
33
  def_delegators :mapping, :table, :table_name, :custom_table?, :mappings
35
34
 
36
35
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveForce
4
- VERSION = '0.15.0'
4
+ VERSION = '0.15.1'
5
5
  end
@@ -354,71 +354,6 @@ describe ActiveForce::SObject do
354
354
  end
355
355
  end
356
356
 
357
- describe '#pluck' do
358
- let(:record_attributes) { [] }
359
-
360
- before do
361
- collection = build_restforce_collection(record_attributes.map { |a| build_restforce_sobject(a) })
362
- allow(client).to receive(:query).and_return(collection)
363
- end
364
-
365
- it 'returns empty array if no records returned from query' do
366
- expect(Whizbang.pluck).to eq([])
367
- end
368
-
369
- it 'works with another query' do
370
- expected = 'SELECT Id, Text_Label FROM Whizbang__c WHERE (Checkbox_Label = true)'
371
- Whizbang.where(checkbox: true).pluck(:id, :text)
372
- expect(client).to have_received(:query).with(expected)
373
- end
374
-
375
- context 'when given no fields' do
376
- it 'queries for all fields' do
377
- expected = "SELECT #{Whizbang.fields.join ', '} FROM Whizbang__c"
378
- Whizbang.pluck
379
- expect(client).to have_received(:query).with(expected)
380
- end
381
- end
382
-
383
- context 'when given one field' do
384
- let(:ids) { ['a', 'b', 1] }
385
- let(:record_attributes) { ids.map { |v| { 'Id' => v } } }
386
-
387
- it 'queries for only that field' do
388
- expected = 'SELECT Id FROM Whizbang__c'
389
- Whizbang.pluck(:id)
390
- expect(client).to have_received(:query).with(expected)
391
- end
392
-
393
- it 'returns an array of casted values for that field' do
394
- expect(Whizbang.pluck(:id)).to match_array(ids.map(&:to_s))
395
- end
396
- end
397
-
398
- context 'when given more than one field' do
399
- let(:record_attributes) do
400
- [
401
- { 'Text_Label' => 'test1', 'Date_Label' => '2023-01-01' },
402
- { 'Text_Label' => 'test2', 'Date_Label' => '2023-01-02' }
403
- ]
404
- end
405
-
406
- it 'queries for only those fields' do
407
- expected = 'SELECT Text_Label, Date_Label FROM Whizbang__c'
408
- Whizbang.pluck(:text, :date)
409
- expect(client).to have_received(:query).with(expected)
410
- end
411
-
412
- it 'returns an array of arrays of casted values in the correct order' do
413
- expected = [
414
- ['test1', Date.new(2023, 1, 1)],
415
- ['test2', Date.new(2023, 1, 2)]
416
- ]
417
- expect(Whizbang.pluck(:text, :date)).to match_array(expected)
418
- end
419
- end
420
- end
421
-
422
357
  describe '#reload' do
423
358
  let(:client) do
424
359
  double("sfdc_client", query: [Restforce::Mash.new(Id: 1, Name: 'Jeff')])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_force
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Espinaco
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-05-26 00:00:00.000000000 Z
14
+ date: 2023-05-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activemodel