restforce-db 0.1.6 → 0.2.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 (24) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -8
  3. data/lib/generators/templates/migration.rb.tt +2 -0
  4. data/lib/restforce/db/command.rb +17 -4
  5. data/lib/restforce/db/instances/active_record.rb +16 -0
  6. data/lib/restforce/db/instances/base.rb +12 -2
  7. data/lib/restforce/db/instances/salesforce.rb +8 -0
  8. data/lib/restforce/db/record_types/active_record.rb +7 -7
  9. data/lib/restforce/db/record_types/base.rb +17 -5
  10. data/lib/restforce/db/record_types/salesforce.rb +2 -1
  11. data/lib/restforce/db/synchronizer.rb +1 -1
  12. data/lib/restforce/db/tracker.rb +44 -0
  13. data/lib/restforce/db/version.rb +1 -1
  14. data/lib/restforce/db/worker.rb +47 -16
  15. data/lib/restforce/db.rb +3 -1
  16. data/test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_associated_database_record/when_synchronization_is_stale/updates_the_database_record.yml +197 -0
  17. data/test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_associated_database_record/when_synchronization_is_up-to-date/does_not_update_the_database_record.yml +234 -0
  18. data/test/lib/restforce/db/instances/active_record_test.rb +4 -0
  19. data/test/lib/restforce/db/record_types/active_record_test.rb +12 -8
  20. data/test/lib/restforce/db/synchronizer_test.rb +45 -14
  21. data/test/lib/restforce/db/tracker_test.rb +50 -0
  22. data/test/support/active_record.rb +4 -3
  23. metadata +6 -3
  24. data/test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_existing_record_in_the_database/updates_the_database_record.yml +0 -158
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Horner
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-24 00:00:00.000000000 Z
11
+ date: 2015-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -232,6 +232,7 @@ files:
232
232
  - lib/restforce/db/record_types/base.rb
233
233
  - lib/restforce/db/record_types/salesforce.rb
234
234
  - lib/restforce/db/synchronizer.rb
235
+ - lib/restforce/db/tracker.rb
235
236
  - lib/restforce/db/version.rb
236
237
  - lib/restforce/db/worker.rb
237
238
  - lib/restforce/extensions.rb
@@ -244,7 +245,8 @@ files:
244
245
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/updates_the_database_record_with_the_Salesforce_record_s_ID.yml
245
246
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_find/finds_existing_records_in_Salesforce.yml
246
247
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_find/returns_nil_when_no_matching_record_exists.yml
247
- - test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_existing_record_in_the_database/updates_the_database_record.yml
248
+ - test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_associated_database_record/when_synchronization_is_stale/updates_the_database_record.yml
249
+ - test/cassettes/Restforce_DB_Synchronizer/_run/given_a_Salesforce_record_with_an_associated_database_record/when_synchronization_is_up-to-date/does_not_update_the_database_record.yml
248
250
  - test/cassettes/Restforce_DB_Synchronizer/_run/given_an_existing_Salesforce_record/populates_the_database_with_the_new_record.yml
249
251
  - test/cassettes/Restforce_DB_Synchronizer/_run/given_an_existing_database_record/populates_Salesforce_with_the_new_record.yml
250
252
  - test/lib/restforce/db/configuration_test.rb
@@ -256,6 +258,7 @@ files:
256
258
  - test/lib/restforce/db/record_types/active_record_test.rb
257
259
  - test/lib/restforce/db/record_types/salesforce_test.rb
258
260
  - test/lib/restforce/db/synchronizer_test.rb
261
+ - test/lib/restforce/db/tracker_test.rb
259
262
  - test/lib/restforce/db_test.rb
260
263
  - test/support/active_record.rb
261
264
  - test/support/database_cleaner.rb
@@ -1,158 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://<host>/services/oauth2/token
6
- body:
7
- encoding: US-ASCII
8
- string: grant_type=password&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password><security_token>
9
- headers:
10
- User-Agent:
11
- - Faraday v0.9.1
12
- Content-Type:
13
- - application/x-www-form-urlencoded
14
- Accept-Encoding:
15
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
- Accept:
17
- - "*/*"
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- Date:
24
- - Fri, 20 Mar 2015 20:59:39 GMT
25
- Set-Cookie:
26
- - BrowserId=uF36AF-_TUy_K6jmfPIc_w;Path=/;Domain=.salesforce.com;Expires=Tue,
27
- 19-May-2015 20:59:39 GMT
28
- Expires:
29
- - Thu, 01 Jan 1970 00:00:00 GMT
30
- Pragma:
31
- - no-cache
32
- Cache-Control:
33
- - no-cache, no-store
34
- Content-Type:
35
- - application/json;charset=UTF-8
36
- Transfer-Encoding:
37
- - chunked
38
- body:
39
- encoding: ASCII-8BIT
40
- string: '{"id":"https://login.salesforce.com/id/00D1a000000H3O9EAK/0051a000000UGT8AAO","issued_at":"1426885179820","token_type":"Bearer","instance_url":"https://<host>","signature":"kaiHQV/T08tk9hkH4w04iaPo5ecEAyOvqNvgKy/CyjQ=","access_token":"00D1a000000H3O9!AQ4AQGLw7kXVL1YKNwYo.72MhTH_JsNiQrcufxWTIkqwVDyMWC2KTKnZXSai5sESPjpz2IjAY1BrBSrja5_PVh3nTEA_uXnP"}'
41
- http_version:
42
- recorded_at: Fri, 20 Mar 2015 20:59:40 GMT
43
- - request:
44
- method: post
45
- uri: https://<host>/services/data/v26.0/sobjects/CustomObject__c
46
- body:
47
- encoding: UTF-8
48
- string: '{"Name":"Custom object","Example_Field__c":"Some sample text"}'
49
- headers:
50
- User-Agent:
51
- - Faraday v0.9.1
52
- Content-Type:
53
- - application/json
54
- Authorization:
55
- - OAuth 00D1a000000H3O9!AQ4AQGLw7kXVL1YKNwYo.72MhTH_JsNiQrcufxWTIkqwVDyMWC2KTKnZXSai5sESPjpz2IjAY1BrBSrja5_PVh3nTEA_uXnP
56
- Accept-Encoding:
57
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
58
- Accept:
59
- - "*/*"
60
- response:
61
- status:
62
- code: 201
63
- message: Created
64
- headers:
65
- Date:
66
- - Fri, 20 Mar 2015 20:59:41 GMT
67
- Set-Cookie:
68
- - BrowserId=xIZRRNLeRKuqkfwjkd3imw;Path=/;Domain=.salesforce.com;Expires=Tue,
69
- 19-May-2015 20:59:41 GMT
70
- Expires:
71
- - Thu, 01 Jan 1970 00:00:00 GMT
72
- Sforce-Limit-Info:
73
- - api-usage=121/15000
74
- Location:
75
- - "/services/data/v26.0/sobjects/CustomObject__c/a001a000001ECbGAAW"
76
- Content-Type:
77
- - application/json;charset=UTF-8
78
- Transfer-Encoding:
79
- - chunked
80
- body:
81
- encoding: ASCII-8BIT
82
- string: '{"id":"a001a000001ECbGAAW","success":true,"errors":[]}'
83
- http_version:
84
- recorded_at: Fri, 20 Mar 2015 20:59:41 GMT
85
- - request:
86
- method: get
87
- uri: https://<host>/services/data/v26.0/query?q=Select%20Id,%20SystemModstamp,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20SystemModstamp%20%3C=%202015-03-20T20:59:41Z
88
- body:
89
- encoding: US-ASCII
90
- string: ''
91
- headers:
92
- User-Agent:
93
- - Faraday v0.9.1
94
- Authorization:
95
- - OAuth 00D1a000000H3O9!AQ4AQGLw7kXVL1YKNwYo.72MhTH_JsNiQrcufxWTIkqwVDyMWC2KTKnZXSai5sESPjpz2IjAY1BrBSrja5_PVh3nTEA_uXnP
96
- Accept-Encoding:
97
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
98
- Accept:
99
- - "*/*"
100
- response:
101
- status:
102
- code: 200
103
- message: OK
104
- headers:
105
- Date:
106
- - Fri, 20 Mar 2015 20:59:42 GMT
107
- Set-Cookie:
108
- - BrowserId=tY8SAk7XSniaZlF00IBN9Q;Path=/;Domain=.salesforce.com;Expires=Tue,
109
- 19-May-2015 20:59:42 GMT
110
- Expires:
111
- - Thu, 01 Jan 1970 00:00:00 GMT
112
- Sforce-Limit-Info:
113
- - api-usage=121/15000
114
- Content-Type:
115
- - application/json;charset=UTF-8
116
- Transfer-Encoding:
117
- - chunked
118
- body:
119
- encoding: ASCII-8BIT
120
- string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/v26.0/sobjects/CustomObject__c/a001a000001ECbGAAW"},"Id":"a001a000001ECbGAAW","SystemModstamp":"2015-03-20T20:59:41.000+0000","Name":"Custom
121
- object","Example_Field__c":"Some sample text"}]}'
122
- http_version:
123
- recorded_at: Fri, 20 Mar 2015 20:59:42 GMT
124
- - request:
125
- method: delete
126
- uri: https://<host>/services/data/v26.0/sobjects/CustomObject__c/a001a000001ECbGAAW
127
- body:
128
- encoding: US-ASCII
129
- string: ''
130
- headers:
131
- User-Agent:
132
- - Faraday v0.9.1
133
- Authorization:
134
- - OAuth 00D1a000000H3O9!AQ4AQGLw7kXVL1YKNwYo.72MhTH_JsNiQrcufxWTIkqwVDyMWC2KTKnZXSai5sESPjpz2IjAY1BrBSrja5_PVh3nTEA_uXnP
135
- Accept-Encoding:
136
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
137
- Accept:
138
- - "*/*"
139
- response:
140
- status:
141
- code: 204
142
- message: No Content
143
- headers:
144
- Date:
145
- - Fri, 20 Mar 2015 20:59:43 GMT
146
- Set-Cookie:
147
- - BrowserId=Ue_DPSZDSCyRoCXkP8Hmnw;Path=/;Domain=.salesforce.com;Expires=Tue,
148
- 19-May-2015 20:59:43 GMT
149
- Expires:
150
- - Thu, 01 Jan 1970 00:00:00 GMT
151
- Sforce-Limit-Info:
152
- - api-usage=121/15000
153
- body:
154
- encoding: UTF-8
155
- string: ''
156
- http_version:
157
- recorded_at: Fri, 20 Mar 2015 20:59:43 GMT
158
- recorded_with: VCR 2.9.3