active_force 0.24.0 → 0.25.0
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/.circleci/config.yml +6 -39
- data/.travis.yml +0 -2
- data/CHANGELOG.md +3 -0
- data/LICENSE.txt +8 -0
- data/active_force.gemspec +4 -3
- data/lib/active_force/sobject.rb +11 -2
- data/lib/active_force/version.rb +1 -1
- data/spec/active_force/sobject_spec.rb +14 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/whizbang.rb +4 -0
- metadata +20 -7
- data/.github/workflows +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2717b024f19c2c0dbf7530d606797a5880dfe629a154e6eebd083da381b917b1
|
4
|
+
data.tar.gz: ab29915f960873acd523a12f73af63f8c13b200e8cddbe4465ef28038cdebf2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc4aa9e5110884da1008add3a996387d66af6c337328d56e773457fb24e61410a63d5bd3a734ab5bf79a44c4b5962a55aca1c00314af41d1275df663fa133f16
|
7
|
+
data.tar.gz: 6702930b7f9d47c2290c4e00300160f5e3261ed9c22834ab4bef55a8438f6ec778f97e51aab197b23d10b1d2b6c6d20dc3e2991b728a847529cf16e7121d6983
|
data/.circleci/config.yml
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
version: 2
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
orbs:
|
4
|
+
codecov: codecov/codecov@4.0.1
|
2
5
|
|
3
6
|
references:
|
4
7
|
default_docker_ruby_executor: &default_docker_ruby_executor
|
@@ -51,49 +54,16 @@ jobs:
|
|
51
54
|
key: active_force-{{ checksum "active_force.gemspec" }}
|
52
55
|
paths:
|
53
56
|
- ~/active_force/active_force_index/vendor/bundle
|
54
|
-
- run:
|
55
|
-
name: Install Code Climate Test Reporter
|
56
|
-
command: |
|
57
|
-
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
58
|
-
chmod +x ./cc-test-reporter
|
59
57
|
- run:
|
60
58
|
name: Run RSpec
|
61
59
|
command: |
|
62
60
|
mkdir /tmp/test-results
|
63
|
-
./cc-test-reporter before-build
|
64
61
|
TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
65
62
|
bundle exec rspec $TESTFILES --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec.xml --format progress
|
66
|
-
-
|
67
|
-
name: Code Climate Test Coverage
|
68
|
-
command: |
|
69
|
-
./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
|
70
|
-
- persist_to_workspace:
|
71
|
-
root: coverage
|
72
|
-
paths:
|
73
|
-
- codeclimate.*.json
|
74
|
-
- store_test_results:
|
75
|
-
path: /tmp/test-results
|
76
|
-
- store_artifacts:
|
77
|
-
path: /tmp/test-results
|
78
|
-
destination: test-results
|
63
|
+
- codecov/upload
|
79
64
|
- store_artifacts:
|
80
65
|
path: coverage
|
81
|
-
|
82
|
-
working_directory: ~/active_force/active_force_index
|
83
|
-
docker:
|
84
|
-
- *default_docker_ruby_executor
|
85
|
-
steps:
|
86
|
-
- attach_workspace:
|
87
|
-
at: ~/active_force/active_force_index
|
88
|
-
- run:
|
89
|
-
name: Install Code Climate Test Reporter
|
90
|
-
command: |
|
91
|
-
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
92
|
-
chmod +x ./cc-test-reporter
|
93
|
-
- run:
|
94
|
-
name: Combine and Upload Coverage
|
95
|
-
command: |
|
96
|
-
./cc-test-reporter sum-coverage --output - codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
|
66
|
+
|
97
67
|
workflows:
|
98
68
|
version: 2
|
99
69
|
build_and_test:
|
@@ -102,6 +72,3 @@ workflows:
|
|
102
72
|
- rspec-test:
|
103
73
|
requires:
|
104
74
|
- build
|
105
|
-
- upload-coverage:
|
106
|
-
requires:
|
107
|
-
- rspec-test
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
## Not released
|
4
4
|
|
5
|
+
## 0.25.0
|
6
|
+
- Add support for Rails 8.x (https://github.com/Beyond-Finance/active_force/pull/108)
|
7
|
+
|
5
8
|
## 0.24.0
|
6
9
|
- Add support for nested select statements that are used in conjuction with nested includes (https://github.com/Beyond-Finance/active_force/pull/102)
|
7
10
|
|
data/LICENSE.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
[Copyright © 2024 Beyond Finance, LLC.]
|
2
|
+
|
3
|
+
This library is available as open source under the terms of the
|
4
|
+
MIT License (https://opensource.org/license/mit). This library is
|
5
|
+
based on the open source code library "https://github.com/heroku/active_force" which was in turn forked from
|
6
|
+
"https://github.com/ionia-corporation/active_force" and licensed
|
7
|
+
under the MIT License.
|
8
|
+
|
1
9
|
Copyright (c) 2013 Eloy Espinaco
|
2
10
|
|
3
11
|
MIT License
|
data/active_force.gemspec
CHANGED
@@ -25,12 +25,13 @@ Gem::Specification.new do |spec|
|
|
25
25
|
|
26
26
|
spec.required_ruby_version = '>= 1.9.3'
|
27
27
|
|
28
|
-
spec.add_dependency 'activemodel', '
|
29
|
-
spec.add_dependency 'activesupport', '
|
28
|
+
spec.add_dependency 'activemodel', '>= 7.0'
|
29
|
+
spec.add_dependency 'activesupport', '>= 7.0'
|
30
30
|
spec.add_dependency 'restforce', '>= 5'
|
31
31
|
spec.add_development_dependency 'rake', '>= 0'
|
32
32
|
spec.add_development_dependency 'rspec', '>= 0'
|
33
33
|
spec.add_development_dependency 'rspec_junit_formatter'
|
34
34
|
spec.add_development_dependency 'pry', '>= 0'
|
35
|
-
spec.add_development_dependency 'simplecov'
|
35
|
+
spec.add_development_dependency 'simplecov'
|
36
|
+
spec.add_development_dependency 'simplecov-cobertura'
|
36
37
|
end
|
data/lib/active_force/sobject.rb
CHANGED
@@ -26,14 +26,15 @@ module ActiveForce
|
|
26
26
|
|
27
27
|
define_model_callbacks :build, :create, :update, :save, :destroy
|
28
28
|
|
29
|
-
class_attribute :mappings, :
|
29
|
+
class_attribute :mappings, :table_name_store
|
30
30
|
|
31
31
|
attr_accessor :id, :title
|
32
32
|
|
33
33
|
class << self
|
34
34
|
extend Forwardable
|
35
35
|
def_delegators :query, :not, :or, :where, :first, :last, :all, :find, :find!, :find_by, :find_by!, :sum, :count, :includes, :limit, :order, :select, :none
|
36
|
-
def_delegators :mapping, :table, :
|
36
|
+
def_delegators :mapping, :table, :custom_table?, :mappings
|
37
|
+
alias_method :table_name=, :table_name_store=
|
37
38
|
|
38
39
|
def update(id, attributes)
|
39
40
|
prepare_for_update(id, attributes).update
|
@@ -43,6 +44,10 @@ module ActiveForce
|
|
43
44
|
prepare_for_update(id, attributes).update!
|
44
45
|
end
|
45
46
|
|
47
|
+
def table_name
|
48
|
+
table_name_store || mapping.table_name
|
49
|
+
end
|
50
|
+
|
46
51
|
private
|
47
52
|
|
48
53
|
def prepare_for_update(id, attributes)
|
@@ -65,6 +70,10 @@ module ActiveForce
|
|
65
70
|
@mapping ||= ActiveForce::Mapping.new name
|
66
71
|
end
|
67
72
|
|
73
|
+
def table_name
|
74
|
+
table_name_store || self.class.mapping.table_name
|
75
|
+
end
|
76
|
+
|
68
77
|
def self.fields
|
69
78
|
mapping.sfdc_names
|
70
79
|
end
|
data/lib/active_force/version.rb
CHANGED
@@ -375,6 +375,20 @@ describe ActiveForce::SObject do
|
|
375
375
|
end
|
376
376
|
end
|
377
377
|
|
378
|
+
describe '.table_name' do
|
379
|
+
|
380
|
+
context 'when no explicit table name is set' do
|
381
|
+
it 'derives the table name from the class name' do
|
382
|
+
expect(Whizbang.table_name).to eq('Whizbang__c')
|
383
|
+
end
|
384
|
+
end
|
385
|
+
context 'when explicit table name is set' do
|
386
|
+
it 'returns the explicit table name' do
|
387
|
+
expect(Whizbang2.table_name).to eq('Whiz_bang2__c')
|
388
|
+
end
|
389
|
+
end
|
390
|
+
end
|
391
|
+
|
378
392
|
describe '.sum' do
|
379
393
|
let(:response) { [Restforce::Mash.new(expr0: 22)] }
|
380
394
|
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/whizbang.rb
CHANGED
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.
|
4
|
+
version: 0.25.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Espinaco
|
@@ -11,34 +11,34 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2025-08-07 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activemodel
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '7.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '7.0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: activesupport
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- - "
|
34
|
+
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '7.0'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "
|
41
|
+
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '7.0'
|
44
44
|
- !ruby/object:Gem::Dependency
|
@@ -125,6 +125,20 @@ dependencies:
|
|
125
125
|
- - ">="
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
|
+
- !ruby/object:Gem::Dependency
|
129
|
+
name: simplecov-cobertura
|
130
|
+
requirement: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
type: :development
|
136
|
+
prerelease: false
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
128
142
|
description: Use SalesForce as an ActiveModel
|
129
143
|
email: eloyesp@gmail.com
|
130
144
|
executables: []
|
@@ -134,7 +148,6 @@ files:
|
|
134
148
|
- ".circleci/config.yml"
|
135
149
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
136
150
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
137
|
-
- ".github/workflows"
|
138
151
|
- ".gitignore"
|
139
152
|
- ".mailmap"
|
140
153
|
- ".rspec"
|
data/.github/workflows
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
on:
|
2
|
-
pull_request:
|
3
|
-
types: [opened, reopened, synchronize]
|
4
|
-
pull_request_review_comment:
|
5
|
-
types: [created, edited, deleted]
|
6
|
-
|
7
|
-
name: Metomic Scan
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
scan-secrets:
|
11
|
-
name: Scan For Secrets
|
12
|
-
runs-on: ubuntu-latest
|
13
|
-
steps:
|
14
|
-
- name: checkout-repo
|
15
|
-
uses: actions/checkout@v3
|
16
|
-
with:
|
17
|
-
ref: ${{ github.event.pull_request.head.sha }}
|
18
|
-
|
19
|
-
- name: authenticate-with-metomic
|
20
|
-
id: authenticate
|
21
|
-
continue-on-error: ${{ vars.METOMIC_FAIL_ON_CONNECTION_ERROR != 'TRUE' }}
|
22
|
-
run: |
|
23
|
-
curl -s --location --request GET '${{ vars.METOMIC_INTEGRATION_ENDPOINT }}/token' --header 'X-API-Key: ${{ secrets.METOMIC_API_TOKEN }}' -o .metomic_token.json
|
24
|
-
echo METOMIC_ACCESS_TOKEN=$(cat .metomic_token.json | jq -r -c '.accessToken') >> $GITHUB_OUTPUT
|
25
|
-
PASS=$(cat .metomic_token.json | jq -r -c '.accessToken // empty')
|
26
|
-
if [ -z "$PASS" ]; then
|
27
|
-
cat .metomic_token.json
|
28
|
-
echo ""
|
29
|
-
echo "FAIL: failed to fetch auth token from Metomic. Ensure required organisation variables / secrets are set correctly. METOMIC_INTEGRATION_ENDPOINT, METOMIC_API_TOKEN"
|
30
|
-
echo "The correct values for these variables are available from the installations page of the Metomic dashboard"
|
31
|
-
exit 1
|
32
|
-
fi
|
33
|
-
|
34
|
-
- name: checkout-metomic-action
|
35
|
-
id: checkout
|
36
|
-
uses: actions/checkout@v3
|
37
|
-
if: ${{ steps.authenticate.outcome == 'success' }}
|
38
|
-
continue-on-error: ${{ vars.METOMIC_FAIL_ON_CONNECTION_ERROR != 'TRUE' }}
|
39
|
-
with:
|
40
|
-
repository: metomic/metomic-github-integration-action.git
|
41
|
-
path: "./.metomic"
|
42
|
-
ref: "main"
|
43
|
-
token: ${{ steps.authenticate.outputs.METOMIC_ACCESS_TOKEN }}
|
44
|
-
|
45
|
-
- name: scan
|
46
|
-
uses: ./.metomic/.github/actions/scan-secrets
|
47
|
-
if: ${{ steps.authenticate.outputs.METOMIC_ACCESS_TOKEN && steps.checkout.outcome == 'success' }}
|
48
|
-
with:
|
49
|
-
metomic_endpoint: ${{ vars.METOMIC_INTEGRATION_ENDPOINT }}
|
50
|
-
metomic_api_token: ${{ secrets.METOMIC_API_TOKEN }}
|
51
|
-
head_ref: ${{ github.event.pull_request.head.sha }}
|