quiz_api_client 4.1.0 → 4.3.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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/lib/quiz_api_client/config.rb +29 -8
  4. data/lib/quiz_api_client/http_client.rb +11 -40
  5. data/lib/quiz_api_client/http_request/failure.rb +65 -0
  6. data/lib/quiz_api_client/http_request/metrics.rb +67 -0
  7. data/lib/quiz_api_client/services/items_service.rb +11 -0
  8. data/lib/quiz_api_client/services/quiz_clone_jobs_service.rb +11 -0
  9. data/lib/quiz_api_client/services/quiz_sync_job_service.rb +17 -0
  10. data/lib/quiz_api_client/services/quiz_sync_jobs_service.rb +16 -0
  11. data/lib/quiz_api_client/version.rb +1 -1
  12. data/lib/quiz_api_client.rb +12 -0
  13. data/spec/config_spec.rb +66 -0
  14. data/spec/contracts/interaction_types_service_spec.rb +22 -0
  15. data/spec/contracts/item_analyses_service_spec.rb +59 -0
  16. data/spec/contracts/items_service_spec.rb +59 -0
  17. data/spec/contracts/qti_imports_service_spec.rb +34 -0
  18. data/spec/contracts/quiz_clone_job_service_spec.rb +20 -0
  19. data/spec/contracts/quiz_clone_jobs_service_spec.rb +21 -0
  20. data/spec/contracts/quiz_entries_service_spec.rb +125 -0
  21. data/spec/contracts/quiz_service_spec.rb +68 -0
  22. data/spec/contracts/quiz_session_events_service_spec.rb +30 -0
  23. data/spec/contracts/quiz_session_result_service_spec.rb +42 -0
  24. data/spec/contracts/quiz_session_service_spec.rb +56 -0
  25. data/spec/contracts/quiz_sessions_service_spec.rb +28 -0
  26. data/spec/contracts/quiz_sync_job_service_spec.rb +21 -0
  27. data/spec/contracts/quiz_sync_jobs_service_spec.rb +21 -0
  28. data/spec/contracts/quizzes_service_spec.rb +80 -0
  29. data/spec/contracts/session_item_results_service_spec.rb +60 -0
  30. data/spec/contracts/session_items_service_spec.rb +21 -0
  31. data/spec/contracts/shared_banks_spec.rb +366 -0
  32. data/spec/contracts/shared_examples/http_delete_example.rb +56 -0
  33. data/spec/contracts/shared_examples/http_get_example.rb +139 -0
  34. data/spec/contracts/shared_examples/http_patch_example.rb +60 -0
  35. data/spec/contracts/shared_examples/http_post_example.rb +68 -0
  36. data/spec/contracts/shared_examples/http_put_example.rb +60 -0
  37. data/spec/http_client_spec.rb +347 -0
  38. data/spec/json_formatter_spec.rb +32 -0
  39. data/spec/quiz_api_client/http_request/failure_spec.rb +100 -0
  40. data/spec/quiz_api_client/http_request/metrics_spec.rb +75 -0
  41. data/spec/quiz_api_client_spec.rb +117 -0
  42. data/spec/services/base_api_service_spec.rb +50 -0
  43. data/spec/services/interaction_types_service_spec.rb +25 -0
  44. data/spec/services/item_analyses_service_spec.rb +76 -0
  45. data/spec/services/items_service_spec.rb +56 -0
  46. data/spec/services/jwt_service_spec.rb +66 -0
  47. data/spec/services/qti_imports_service_spec.rb +114 -0
  48. data/spec/services/quiz_analyses_service_spec.rb +44 -0
  49. data/spec/services/quiz_clone_job_service_spec.rb +41 -0
  50. data/spec/services/quiz_clone_jobs_service_spec.rb +77 -0
  51. data/spec/services/quiz_entries_service_spec.rb +71 -0
  52. data/spec/services/quiz_service_spec.rb +49 -0
  53. data/spec/services/quiz_session_events_service_spec.rb +42 -0
  54. data/spec/services/quiz_session_result_service_spec.rb +26 -0
  55. data/spec/services/quiz_session_service_spec.rb +49 -0
  56. data/spec/services/quiz_sessions_service_spec.rb +42 -0
  57. data/spec/services/quiz_sync_job_service_spec.rb +41 -0
  58. data/spec/services/quiz_sync_jobs_service_spec.rb +77 -0
  59. data/spec/services/quizzes_service_spec.rb +71 -0
  60. data/spec/services/session_item_results_service_spec.rb +33 -0
  61. data/spec/services/session_items_service_spec.rb +26 -0
  62. data/spec/spec_helper.rb +42 -0
  63. data/spec/support/pact_config.rb +64 -0
  64. data/spec/support/pact_helper.rb +19 -0
  65. metadata +130 -35
  66. data/.dockerignore +0 -7
  67. data/.editorconfig +0 -16
  68. data/.gitignore +0 -13
  69. data/.rspec +0 -3
  70. data/.rubocop.yml +0 -72
  71. data/CHANGELOG.md +0 -28
  72. data/Dockerfile +0 -12
  73. data/Gemfile +0 -5
  74. data/Jenkinsfile +0 -86
  75. data/bin/console +0 -7
  76. data/bin/contracts-generate +0 -26
  77. data/bin/setup +0 -65
  78. data/docker-compose.dev.override.yml +0 -11
  79. data/docker-compose.yml +0 -10
  80. data/quiz_api_client.gemspec +0 -59
metadata CHANGED
@@ -1,26 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quiz_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - Chris Wang
8
- - Augusto Callejas
9
- - Bryan Petty
10
- - Christian Prescott
11
- - Han Yan
7
+ - Alex Slaughter
12
8
  - Jayce Higgins
13
- - Marc Alan Phillips
9
+ - Jorge Arteaga
14
10
  - Mark Starkman
15
- - Michael Brewer-Davis
16
11
  - Michael Hargiss
17
- - Omar Khan
18
12
  - Robin Kuss
19
13
  - Ryan Taylor
20
14
  autorequire:
21
15
  bindir: exe
22
16
  cert_chain: []
23
- date: 2021-10-27 00:00:00.000000000 Z
17
+ date: 2022-06-17 00:00:00.000000000 Z
24
18
  dependencies:
25
19
  - !ruby/object:Gem::Dependency
26
20
  name: httparty
@@ -64,6 +58,20 @@ dependencies:
64
58
  - - "~>"
65
59
  - !ruby/object:Gem::Version
66
60
  version: '0.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: inst_statsd
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
67
75
  - !ruby/object:Gem::Dependency
68
76
  name: pact
69
77
  requirement: !ruby/object:Gem::Requirement
@@ -178,42 +186,24 @@ dependencies:
178
186
  version: '0'
179
187
  description:
180
188
  email:
181
- - acallejas@instructure.com
182
- - bpetty@instructure.com
183
- - cprescott@instructure.com
184
- - hyan@instructure.com
189
+ - aslaughter@instructure.com
185
190
  - jhiggins@instructure.com
186
- - mphillips@instructure.com
191
+ - jorge.arteaga@instructure.com
187
192
  - mark.starkman@instructure.com
188
- - mbd@instructure.com
189
193
  - mhargiss@instructure.com
190
- - okhan@instructure.com
191
194
  - rkuss@instructure.com
192
195
  - rtaylor@instructure.com
193
- - cwang@instructure.com
194
196
  executables: []
195
197
  extensions: []
196
198
  extra_rdoc_files: []
197
199
  files:
198
- - ".dockerignore"
199
- - ".editorconfig"
200
- - ".gitignore"
201
- - ".rspec"
202
- - ".rubocop.yml"
203
- - CHANGELOG.md
204
- - Dockerfile
205
- - Gemfile
206
- - Jenkinsfile
207
200
  - README.md
208
201
  - Rakefile
209
- - bin/console
210
- - bin/contracts-generate
211
- - bin/setup
212
- - docker-compose.dev.override.yml
213
- - docker-compose.yml
214
202
  - lib/quiz_api_client.rb
215
203
  - lib/quiz_api_client/config.rb
216
204
  - lib/quiz_api_client/http_client.rb
205
+ - lib/quiz_api_client/http_request/failure.rb
206
+ - lib/quiz_api_client/http_request/metrics.rb
217
207
  - lib/quiz_api_client/json_formatter.rb
218
208
  - lib/quiz_api_client/services/base_api_service.rb
219
209
  - lib/quiz_api_client/services/interaction_types_service.rb
@@ -230,12 +220,65 @@ files:
230
220
  - lib/quiz_api_client/services/quiz_session_result_service.rb
231
221
  - lib/quiz_api_client/services/quiz_session_service.rb
232
222
  - lib/quiz_api_client/services/quiz_sessions_service.rb
223
+ - lib/quiz_api_client/services/quiz_sync_job_service.rb
224
+ - lib/quiz_api_client/services/quiz_sync_jobs_service.rb
233
225
  - lib/quiz_api_client/services/quizzes_service.rb
234
226
  - lib/quiz_api_client/services/session_item_results_service.rb
235
227
  - lib/quiz_api_client/services/session_items_service.rb
236
228
  - lib/quiz_api_client/services/shared_banks.rb
237
229
  - lib/quiz_api_client/version.rb
238
- - quiz_api_client.gemspec
230
+ - spec/config_spec.rb
231
+ - spec/contracts/interaction_types_service_spec.rb
232
+ - spec/contracts/item_analyses_service_spec.rb
233
+ - spec/contracts/items_service_spec.rb
234
+ - spec/contracts/qti_imports_service_spec.rb
235
+ - spec/contracts/quiz_clone_job_service_spec.rb
236
+ - spec/contracts/quiz_clone_jobs_service_spec.rb
237
+ - spec/contracts/quiz_entries_service_spec.rb
238
+ - spec/contracts/quiz_service_spec.rb
239
+ - spec/contracts/quiz_session_events_service_spec.rb
240
+ - spec/contracts/quiz_session_result_service_spec.rb
241
+ - spec/contracts/quiz_session_service_spec.rb
242
+ - spec/contracts/quiz_sessions_service_spec.rb
243
+ - spec/contracts/quiz_sync_job_service_spec.rb
244
+ - spec/contracts/quiz_sync_jobs_service_spec.rb
245
+ - spec/contracts/quizzes_service_spec.rb
246
+ - spec/contracts/session_item_results_service_spec.rb
247
+ - spec/contracts/session_items_service_spec.rb
248
+ - spec/contracts/shared_banks_spec.rb
249
+ - spec/contracts/shared_examples/http_delete_example.rb
250
+ - spec/contracts/shared_examples/http_get_example.rb
251
+ - spec/contracts/shared_examples/http_patch_example.rb
252
+ - spec/contracts/shared_examples/http_post_example.rb
253
+ - spec/contracts/shared_examples/http_put_example.rb
254
+ - spec/http_client_spec.rb
255
+ - spec/json_formatter_spec.rb
256
+ - spec/quiz_api_client/http_request/failure_spec.rb
257
+ - spec/quiz_api_client/http_request/metrics_spec.rb
258
+ - spec/quiz_api_client_spec.rb
259
+ - spec/services/base_api_service_spec.rb
260
+ - spec/services/interaction_types_service_spec.rb
261
+ - spec/services/item_analyses_service_spec.rb
262
+ - spec/services/items_service_spec.rb
263
+ - spec/services/jwt_service_spec.rb
264
+ - spec/services/qti_imports_service_spec.rb
265
+ - spec/services/quiz_analyses_service_spec.rb
266
+ - spec/services/quiz_clone_job_service_spec.rb
267
+ - spec/services/quiz_clone_jobs_service_spec.rb
268
+ - spec/services/quiz_entries_service_spec.rb
269
+ - spec/services/quiz_service_spec.rb
270
+ - spec/services/quiz_session_events_service_spec.rb
271
+ - spec/services/quiz_session_result_service_spec.rb
272
+ - spec/services/quiz_session_service_spec.rb
273
+ - spec/services/quiz_sessions_service_spec.rb
274
+ - spec/services/quiz_sync_job_service_spec.rb
275
+ - spec/services/quiz_sync_jobs_service_spec.rb
276
+ - spec/services/quizzes_service_spec.rb
277
+ - spec/services/session_item_results_service_spec.rb
278
+ - spec/services/session_items_service_spec.rb
279
+ - spec/spec_helper.rb
280
+ - spec/support/pact_config.rb
281
+ - spec/support/pact_helper.rb
239
282
  homepage:
240
283
  licenses: []
241
284
  metadata: {}
@@ -254,8 +297,60 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
297
  - !ruby/object:Gem::Version
255
298
  version: '0'
256
299
  requirements: []
257
- rubygems_version: 3.1.6
300
+ rubygems_version: 3.1.4
258
301
  signing_key:
259
302
  specification_version: 4
260
303
  summary: Ruby client for quiz_api
261
- test_files: []
304
+ test_files:
305
+ - spec/config_spec.rb
306
+ - spec/contracts/interaction_types_service_spec.rb
307
+ - spec/contracts/item_analyses_service_spec.rb
308
+ - spec/contracts/items_service_spec.rb
309
+ - spec/contracts/qti_imports_service_spec.rb
310
+ - spec/contracts/quiz_clone_job_service_spec.rb
311
+ - spec/contracts/quiz_clone_jobs_service_spec.rb
312
+ - spec/contracts/quiz_entries_service_spec.rb
313
+ - spec/contracts/quiz_service_spec.rb
314
+ - spec/contracts/quiz_session_events_service_spec.rb
315
+ - spec/contracts/quiz_session_result_service_spec.rb
316
+ - spec/contracts/quiz_session_service_spec.rb
317
+ - spec/contracts/quiz_sessions_service_spec.rb
318
+ - spec/contracts/quiz_sync_job_service_spec.rb
319
+ - spec/contracts/quiz_sync_jobs_service_spec.rb
320
+ - spec/contracts/quizzes_service_spec.rb
321
+ - spec/contracts/session_item_results_service_spec.rb
322
+ - spec/contracts/session_items_service_spec.rb
323
+ - spec/contracts/shared_banks_spec.rb
324
+ - spec/contracts/shared_examples/http_delete_example.rb
325
+ - spec/contracts/shared_examples/http_get_example.rb
326
+ - spec/contracts/shared_examples/http_patch_example.rb
327
+ - spec/contracts/shared_examples/http_post_example.rb
328
+ - spec/contracts/shared_examples/http_put_example.rb
329
+ - spec/http_client_spec.rb
330
+ - spec/json_formatter_spec.rb
331
+ - spec/quiz_api_client/http_request/failure_spec.rb
332
+ - spec/quiz_api_client/http_request/metrics_spec.rb
333
+ - spec/quiz_api_client_spec.rb
334
+ - spec/services/base_api_service_spec.rb
335
+ - spec/services/interaction_types_service_spec.rb
336
+ - spec/services/item_analyses_service_spec.rb
337
+ - spec/services/items_service_spec.rb
338
+ - spec/services/jwt_service_spec.rb
339
+ - spec/services/qti_imports_service_spec.rb
340
+ - spec/services/quiz_analyses_service_spec.rb
341
+ - spec/services/quiz_clone_job_service_spec.rb
342
+ - spec/services/quiz_clone_jobs_service_spec.rb
343
+ - spec/services/quiz_entries_service_spec.rb
344
+ - spec/services/quiz_service_spec.rb
345
+ - spec/services/quiz_session_events_service_spec.rb
346
+ - spec/services/quiz_session_result_service_spec.rb
347
+ - spec/services/quiz_session_service_spec.rb
348
+ - spec/services/quiz_sessions_service_spec.rb
349
+ - spec/services/quiz_sync_job_service_spec.rb
350
+ - spec/services/quiz_sync_jobs_service_spec.rb
351
+ - spec/services/quizzes_service_spec.rb
352
+ - spec/services/session_item_results_service_spec.rb
353
+ - spec/services/session_items_service_spec.rb
354
+ - spec/spec_helper.rb
355
+ - spec/support/pact_config.rb
356
+ - spec/support/pact_helper.rb
data/.dockerignore DELETED
@@ -1,7 +0,0 @@
1
- /.gitignore
2
- /.ruby-version
3
- /coverage
4
- /docker-compose.*
5
- /Dockerfile*
6
- /Gemfile.lock
7
- /**/*.gem
data/.editorconfig DELETED
@@ -1,16 +0,0 @@
1
- # .editorconfig
2
- # Please install EditorConfig plugin for your editor or IDE
3
- # Usage and plugin list can be found here: http://EditorConfig.org
4
-
5
- # top-most EditorConfig file
6
- root = true
7
-
8
- [*]
9
- end_of_line = lf
10
- indent_style = space
11
- indent_size = 2
12
- insert_final_newline = true
13
- trim_trailing_whitespace = true
14
-
15
- [*.md]
16
- indent_size = 4
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /.ruby-version
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /docker-compose.override.yml
8
- /Gemfile.lock
9
- /log/
10
- /pacts/
11
- /pkg/
12
- /spec/reports/
13
- /tmp/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --require spec_helper
2
- --format documentation
3
- --color
data/.rubocop.yml DELETED
@@ -1,72 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.6
3
-
4
- Metrics/ClassLength:
5
- Max: 200 # Default: 100
6
-
7
- Metrics/LineLength:
8
- Max: 120 # Default: 80
9
-
10
- Metrics/MethodLength:
11
- Max: 20 # Default: 10
12
-
13
- Metrics/BlockLength:
14
- Max: 30
15
- Exclude:
16
- - quiz_api_client.gemspec
17
- - spec/**/*.rb
18
-
19
- Naming/MemoizedInstanceVariableName:
20
- EnforcedStyleForLeadingUnderscores: required
21
-
22
- Layout/AlignParameters:
23
- # Alignment of parameters in multi-line method calls.
24
- #
25
- # The `with_fixed_indentation` style aligns the following lines with one
26
- # level of indentation relative to the start of the line with the method call.
27
- #
28
- # method_call(a,
29
- # b)
30
- EnforcedStyle: with_fixed_indentation
31
-
32
- Layout/CaseIndentation:
33
- EnforcedStyle: end
34
-
35
- Layout/EndAlignment:
36
- EnforcedStyleAlignWith: variable
37
-
38
- Style/ClassAndModuleChildren:
39
- # Checks the style of children definitions at classes and modules.
40
- #
41
- # Basically there are two different styles:
42
- #
43
- # `nested` - have each child on a separate line
44
- # class Foo
45
- # class Bar
46
- # end
47
- # end
48
- #
49
- # `compact` - combine definitions as much as possible
50
- # class Foo::Bar
51
- # end
52
- #
53
- # The compact style is only forced, for classes / modules with one child.
54
- EnforcedStyle: nested
55
- Enabled: false
56
-
57
- Style/Documentation:
58
- # This cop checks for missing top-level documentation of classes and modules.
59
- # Classes with no body and namespace modules are exempt from the check.
60
- # Namespace modules are modules that have nothing in their bodies except
61
- # classes or other modules.
62
- Enabled: false
63
-
64
- Style/FrozenStringLiteralComment:
65
- # `always` will always add the frozen string literal comment to a file
66
- # regardless of the Ruby version or if `freeze` or `<<` are called on a
67
- # string literal. If you run code against multiple versions of Ruby, it is
68
- # possible that this will create errors in Ruby 2.3.0+.
69
- #
70
- # See: https://wyeworks.com/blog/2015/12/1/immutable-strings-in-ruby-2-dot-3
71
- EnforcedStyle: always
72
- Enabled: false
data/CHANGELOG.md DELETED
@@ -1,28 +0,0 @@
1
- CHANGELOG
2
- =========
3
-
4
- All notable changes to this project will be documented in this file. This
5
- project adheres to [Semantic Versioning](http://semver.org/).
6
-
7
- [TOC]
8
-
9
- ## 4.1.0 (2021-10-27)
10
-
11
- ### Breaking changes (potentially)
12
-
13
- * All non-successful (2xx) responses will raise `QuizApiClient::HttpClient::RequestFailed` error except for 401 and 422
14
- * Can be overridden in `allowable_response_codes` config
15
-
16
- ## 4.0.0 (2021-10-18)
17
-
18
- ### Breaking changes
19
-
20
- * Ruby 2.4.x is no longer supported
21
- * Ruby 2.5.x is no longer supported
22
-
23
- ### Changed
24
- * Minimum Ruby version to 2.6.x
25
- * Internal classes use a configuration object instead parameters on instantiation
26
- * Instantiating `QuizApiClient::Client` remains the same
27
- * Added `error_handler` configuration to work with Sentry Raven gem
28
-
data/Dockerfile DELETED
@@ -1,12 +0,0 @@
1
- FROM instructure/rvm
2
-
3
- RUN mkdir -p coverage log pacts
4
-
5
- COPY --chown=docker:docker quiz_api_client.gemspec Gemfile ./
6
- COPY --chown=docker:docker lib/quiz_api_client/version.rb lib/quiz_api_client/version.rb
7
- RUN /bin/bash -l -c "rvm-exec 2.6 gem install bundler -v 2.1.4"
8
- RUN /bin/bash -l -c "rvm-exec 2.6 bundle install --jobs 5"
9
-
10
- COPY --chown=docker:docker . .
11
-
12
- CMD /bin/bash -l -c "rvm-exec 2.6 bundle exec rspec"
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- gem 'pry'
data/Jenkinsfile DELETED
@@ -1,86 +0,0 @@
1
- def buildMatrix = ['2.6', '2.7'].collectEntries { ruby ->
2
- ["Ruby ${ruby}": {
3
- sh """
4
- docker-compose run --name "${env.BUILD_ID}-ruby-${ruby}" \
5
- app /bin/bash -lc "rvm-exec ${ruby} bundle install --jobs 5 && rvm-exec ${ruby} bundle exec rspec"
6
- """
7
- }]
8
- }
9
-
10
- pipeline {
11
- agent {
12
- label 'docker'
13
- }
14
- options {
15
- buildDiscarder(logRotator(numToKeepStr: '50'))
16
- timeout(time: 20, unit: 'MINUTES')
17
- }
18
- stages {
19
- stage('Build') {
20
- steps {
21
- sh 'docker-compose build --pull'
22
- }
23
- }
24
- stage('Lint') {
25
- steps {
26
- sh '''
27
- docker-compose run --rm app /bin/bash -lc \
28
- "rvm-exec 2.6 bundle exec rubocop --fail-level autocorrect"
29
- '''
30
- }
31
- }
32
- stage('Unit Tests') {
33
- steps { script { parallel buildMatrix } }
34
- }
35
- stage('Contract Tests') {
36
- steps {
37
- sh 'docker-compose run app /bin/bash -l -c "rvm-exec 2.6 bundle exec rspec -t pact"'
38
- }
39
- }
40
- stage ('Publish') {
41
- when { environment name: "GERRIT_EVENT_TYPE", value: "change-merged"}
42
- environment {
43
- PACT_BROKER_PASSWORD = credentials('pact_broker_password')
44
- JENKINS_URL = "${env.JENKINS_URL}"
45
- PACT_CONSUMER_TAG = 'master'
46
- PACT_BROKER_USERNAME = 'quizzes'
47
- PACT_BROKER_HOST = 'inst-pact-broker.inseng.net'
48
- }
49
- steps {
50
- script {
51
- sh '''
52
- sha="$(git rev-parse --short HEAD)"
53
-
54
- docker-compose run --rm \
55
- -e JENKINS_URL="${JENKINS_URL}" \
56
- -e PACT_BROKER_HOST="${PACT_BROKER_HOST}" \
57
- -e PACT_BROKER_USERNAME="${PACT_BROKER_USERNAME}" \
58
- -e PACT_BROKER_PASSWORD="${PACT_BROKER_PASSWORD}" \
59
- -e PACT_CONSUMER_TAG="${PACT_CONSUMER_TAG}" \
60
- -e SHA="${sha}" \
61
- app /bin/bash -l -c "rvm-exec 2.6 bundle exec rake broker:pact:publish:jenkins_post_merge"
62
- '''
63
- }
64
- }
65
- }
66
- }
67
-
68
- post {
69
- success {
70
- sh "docker cp \"${env.BUILD_ID}-ruby-2.6:/usr/src/app/coverage\" ."
71
- publishHTML target: [
72
- allowMissing: false,
73
- alwaysLinkToLastBuild: false,
74
- keepAll: true,
75
- reportDir: "coverage",
76
- reportFiles: 'index.html',
77
- reportName: 'Coverage Report'
78
- ]
79
- }
80
- cleanup { // Always runs after all other post conditions=
81
- sh 'docker-compose kill'
82
- sh 'docker-compose rm -f'
83
- sh 'docker images -qf "dangling=true" | xargs docker rmi -f &>/dev/null'
84
- }
85
- }
86
- }
data/bin/console DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'quiz_api_client'
5
- require 'irb'
6
-
7
- IRB.start
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- function print_results() {
4
- exit_code=$?
5
- set +e
6
-
7
- if [[ "$exit_code" == "0" ]]; then
8
- echo "Success! Open http://pact-broker.docker to view your published pact file."
9
- else
10
- echo "Oops! Something went wrong."
11
- fi
12
-
13
- docker cp contracts:/usr/src/app/log . &> /dev/null
14
- docker cp contracts:/usr/src/app/pacts . &> /dev/null
15
- docker rm -f contracts &> /dev/null
16
-
17
- docker-compose rm -fv app &> /dev/null
18
- }
19
- trap print_results INT TERM EXIT
20
- set -e
21
-
22
- rm -rf pacts
23
- sha="$(git rev-parse --short HEAD)"
24
-
25
- docker-compose run --name contracts -e SHA="${sha}" app bash -l -c \
26
- "bundle && bundle exec rspec --tag pact && bundle exec rake broker:pact:publish:local"
data/bin/setup DELETED
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- function print_results() {
4
- exit_code=$?
5
- set +e
6
-
7
- echo ""
8
-
9
- if [[ "$exit_code" == "0" ]]; then
10
- echo "Success!"
11
- else
12
- echo "Something went wrong! Check the output above for details."
13
- fi
14
- }
15
- trap print_results INT TERM EXIT
16
- set -e
17
-
18
- OSNAME=$(uname | tr "[:upper:]" "[:lower:]")
19
-
20
- function generate_docker_override_os () {
21
- sed -E "s/#(.*# ${OSNAME}$)/\1/"
22
- }
23
-
24
- function generate_docker_override_filesystem () {
25
- if [ -z "${IGNORE_FILESYSTEM_OVERRIDE}" ]; then
26
- sed -E "s/#(.*# ${OSNAME}:fs)/\1/"
27
- else
28
- cat
29
- fi
30
- }
31
-
32
- function generate_docker_override() {
33
- if [ -e docker-compose.override.yml ]; then
34
- echo "We found an existing docker-compose.override.yml"
35
- echo ""
36
- echo "You'll want to merge that file with the version controlled
37
- docker-compose.dev.override.yml file to make sure you've got
38
- the most recent changes"
39
- echo ""
40
- else
41
- echo "we are building the development example override file to docker-compose.override.yml for you"
42
- generate_docker_override_os < docker-compose.dev.override.yml | \
43
- generate_docker_override_filesystem > docker-compose.override.yml
44
- fi
45
- }
46
-
47
- function os_linux_specific_setup() {
48
- mkdir -p log pacts
49
- }
50
-
51
- os_specific_setup() {
52
- echo Configuring for "${OSNAME}"
53
- case ${OSNAME} in
54
- linux)
55
- os_linux_specific_setup
56
- ;;
57
- esac
58
- }
59
-
60
- os_specific_setup
61
- generate_docker_override
62
-
63
- echo ""
64
- echo "Preparing environment for native development..."
65
- bundle install
@@ -1,11 +0,0 @@
1
- version: '3.5'
2
-
3
- services:
4
- app:
5
- # This port doesn't exist, but doing this tricks Dory proxy into hooking up
6
- # the container so it can actually talk to the Pact Broker.
7
- expose: [8080]
8
- external_links:
9
- - ${PROXY_CONTAINER:-dinghy_http_proxy}:pact-broker.docker
10
- volumes:
11
- - .:/usr/src/app
data/docker-compose.yml DELETED
@@ -1,10 +0,0 @@
1
- version: '3.5'
2
-
3
- services:
4
- app:
5
- build: .
6
- volumes:
7
- - pacts:/usr/src/app/pacts
8
-
9
- volumes:
10
- pacts: {}
@@ -1,59 +0,0 @@
1
- lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'quiz_api_client/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'quiz_api_client'
7
- spec.version = QuizApiClient::VERSION
8
- spec.authors = [
9
- 'Chris Wang',
10
- 'Augusto Callejas',
11
- 'Bryan Petty',
12
- 'Christian Prescott',
13
- 'Han Yan',
14
- 'Jayce Higgins',
15
- 'Marc Alan Phillips',
16
- 'Mark Starkman',
17
- 'Michael Brewer-Davis',
18
- 'Michael Hargiss',
19
- 'Omar Khan',
20
- 'Robin Kuss',
21
- 'Ryan Taylor'
22
- ]
23
- spec.email = [
24
- 'acallejas@instructure.com',
25
- 'bpetty@instructure.com',
26
- 'cprescott@instructure.com',
27
- 'hyan@instructure.com',
28
- 'jhiggins@instructure.com',
29
- 'mphillips@instructure.com',
30
- 'mark.starkman@instructure.com',
31
- 'mbd@instructure.com',
32
- 'mhargiss@instructure.com',
33
- 'okhan@instructure.com',
34
- 'rkuss@instructure.com',
35
- 'rtaylor@instructure.com',
36
- 'cwang@instructure.com'
37
- ]
38
- spec.summary = 'Ruby client for quiz_api'
39
-
40
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
41
- spec.bindir = 'exe'
42
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
43
- spec.require_paths = ['lib']
44
-
45
- spec.required_ruby_version = '>= 2.6'
46
-
47
- spec.add_dependency 'httparty', '~> 0.17'
48
- spec.add_dependency 'jwt', '~> 2.2'
49
- spec.add_dependency 'link_header', '~> 0.0'
50
-
51
- spec.add_development_dependency 'pact', '~> 1.41'
52
- spec.add_development_dependency 'pact_broker-client', '~> 1.19'
53
- spec.add_development_dependency 'rake', '~> 12.3'
54
- spec.add_development_dependency 'rspec', '~> 3.8'
55
- spec.add_development_dependency 'rubocop', '~> 0.74.0'
56
- spec.add_development_dependency 'sentry-raven', '~> 3.1'
57
- spec.add_development_dependency 'simplecov'
58
- spec.add_development_dependency 'webmock'
59
- end