clever 3.2.9 → 3.2.11

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: 90f72ac0202566192980b230958038397f7618a1fcb239eebc556be7447cf243
4
- data.tar.gz: 658d719e6cc05ee3eaae37622ec83ebb1271f7cdc9aeb96a8800de238c2653fe
3
+ metadata.gz: 9e2d783fdf17fb64a32e260f85fde516a69d83df140fab1da3a4787e3f832685
4
+ data.tar.gz: 9ce96a11e2b12d8d2ea10b86fbf08c1c764593c843c4ba0789697737a028f4ee
5
5
  SHA512:
6
- metadata.gz: 1bc02e4fe7e255869023332c60baf65beaa535874dc7dba42a1d70feb8a86c871f3e1eb27c4df372fb8a68dcb4273d32b48da56d9d123f29c147fc5e048fbc5c
7
- data.tar.gz: '098e06ae89ebb3ed254999d3b8891bbddcb076e7dddbb455e4c05ab86264c5bd975110164fbd9ebc774f3380f0c5fac869a15f0b5774f5827ad976eada5b4c9c'
6
+ metadata.gz: d21d01109adc69a07173b3e55907a8285d68839b9406a34b64edc005d48a79d50b371baba689c165f8e2e509ec7ca0a2c3b0b4ad5e9707417f31f413ed0a0188
7
+ data.tar.gz: 6232bc5e6823b4c8f05b829b4124241a471ca41fe760b4f384a285e251ab898489e4aab46514c209d8b2ba0d7e23be3f6f885cd51f1b04739966a260b48622a4
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.5
data/Gemfile.lock CHANGED
@@ -1,42 +1,43 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clever (3.2.9)
4
+ clever (3.2.11)
5
5
  faraday
6
6
  faraday_middleware
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.4.0)
11
+ ast (2.4.2)
12
12
  builder (3.2.3)
13
13
  coderay (1.1.2)
14
14
  diff-lcs (1.3)
15
- docile (1.3.1)
15
+ docile (1.4.1)
16
16
  faraday (1.0.1)
17
17
  multipart-post (>= 1.2, < 3)
18
18
  faraday_middleware (1.0.0)
19
19
  faraday (~> 1.0)
20
- jaro_winkler (1.5.2)
21
- json (2.2.0)
20
+ json (2.9.1)
21
+ language_server-protocol (3.17.0.4)
22
22
  metaclass (0.0.4)
23
23
  method_source (0.8.2)
24
24
  mocha (1.8.0)
25
25
  metaclass (~> 0.0.1)
26
26
  multipart-post (2.1.1)
27
- parallel (1.14.0)
28
- parser (2.6.0.0)
29
- ast (~> 2.4.0)
30
- powerpack (0.1.2)
27
+ parallel (1.26.3)
28
+ parser (3.3.7.0)
29
+ ast (~> 2.4.1)
30
+ racc
31
31
  pry (0.10.4)
32
32
  coderay (~> 1.1.0)
33
33
  method_source (~> 0.8.1)
34
34
  slop (~> 3.4)
35
35
  pry-nav (0.2.4)
36
36
  pry (>= 0.9.10, < 0.11.0)
37
- psych (3.1.0)
38
- rainbow (3.0.0)
37
+ racc (1.8.1)
38
+ rainbow (3.1.1)
39
39
  rake (10.5.0)
40
+ regexp_parser (2.10.0)
40
41
  rspec (3.8.0)
41
42
  rspec-core (~> 3.8.0)
42
43
  rspec-expectations (~> 3.8.0)
@@ -53,23 +54,29 @@ GEM
53
54
  rspec_junit_formatter (0.2.2)
54
55
  builder (< 4)
55
56
  rspec-core (>= 2, < 4, != 2.12.0)
56
- rubocop (0.65.0)
57
- jaro_winkler (~> 1.5.1)
57
+ rubocop (1.71.0)
58
+ json (~> 2.3)
59
+ language_server-protocol (>= 3.17.0)
58
60
  parallel (~> 1.10)
59
- parser (>= 2.5, != 2.5.1.1)
60
- powerpack (~> 0.1)
61
- psych (>= 3.1.0)
61
+ parser (>= 3.3.0.2)
62
62
  rainbow (>= 2.2.2, < 4.0)
63
+ regexp_parser (>= 2.9.3, < 3.0)
64
+ rubocop-ast (>= 1.36.2, < 2.0)
63
65
  ruby-progressbar (~> 1.7)
64
- unicode-display_width (~> 1.4.0)
65
- ruby-progressbar (1.10.0)
66
- simplecov (0.16.1)
66
+ unicode-display_width (>= 2.4.0, < 4.0)
67
+ rubocop-ast (1.38.0)
68
+ parser (>= 3.3.1.0)
69
+ ruby-progressbar (1.13.0)
70
+ simplecov (0.22.0)
67
71
  docile (~> 1.1)
68
- json (>= 1.8, < 3)
69
- simplecov-html (~> 0.10.0)
70
- simplecov-html (0.10.2)
72
+ simplecov-html (~> 0.11)
73
+ simplecov_json_formatter (~> 0.1)
74
+ simplecov-html (0.13.1)
75
+ simplecov_json_formatter (0.1.4)
71
76
  slop (3.6.0)
72
- unicode-display_width (1.4.1)
77
+ unicode-display_width (3.1.4)
78
+ unicode-emoji (~> 4.0, >= 4.0.4)
79
+ unicode-emoji (4.0.4)
73
80
 
74
81
  PLATFORMS
75
82
  ruby
@@ -83,8 +90,8 @@ DEPENDENCIES
83
90
  rake (~> 10.0)
84
91
  rspec (~> 3.0)
85
92
  rspec_junit_formatter
86
- rubocop
87
- simplecov
93
+ rubocop (~> 1.53)
94
+ simplecov (~> 0.22)
88
95
 
89
96
  BUNDLED WITH
90
97
  2.1.4
data/clever.gemspec CHANGED
@@ -42,6 +42,6 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency 'rake', '~> 10.0'
43
43
  spec.add_development_dependency 'rspec', '~> 3.0'
44
44
  spec.add_development_dependency 'rspec_junit_formatter'
45
- spec.add_development_dependency 'rubocop'
46
- spec.add_development_dependency 'simplecov'
45
+ spec.add_development_dependency 'rubocop', '~>1.53'
46
+ spec.add_development_dependency 'simplecov', '~>0.22'
47
47
  end
data/lib/clever/client.rb CHANGED
@@ -3,7 +3,8 @@
3
3
  module Clever
4
4
  class Client
5
5
  attr_accessor :app_id, :app_token, :sync_id, :logger, :redirect_uri,
6
- :vendor_key, :vendor_secret, :username_source, :staff_username_source
6
+ :vendor_key, :vendor_secret, :username_source, :staff_username_source,
7
+ :sentry_client
7
8
 
8
9
  attr_reader :api_url, :tokens_endpoint
9
10
 
@@ -10,7 +10,22 @@ module Clever
10
10
  end
11
11
 
12
12
  def execute(path, method = :get, params = nil, body = nil)
13
- Response.new(raw_request(path, method, params, body))
13
+ response = Response.new(raw_request(path, method, params, body))
14
+
15
+ if [502, 504].include?(response.status)
16
+ log_to_sentry(
17
+ 'client.app_id' => @client.app_id,
18
+ 'connection.body' => body,
19
+ 'connection.method' => method,
20
+ 'connection.params' => params,
21
+ 'connection.path' => path,
22
+ 'response.http_status' => response.status,
23
+ 'response.raw_body' => response.raw_body
24
+ )
25
+ raise GatewayTimeoutError if response.timed_out?
26
+ end
27
+
28
+ response
14
29
  end
15
30
 
16
31
  def set_token(token)
@@ -48,5 +63,13 @@ module Clever
48
63
  request.body = body
49
64
  end
50
65
  end
66
+
67
+ def log_to_sentry(payload)
68
+ return unless @client.sentry_client
69
+
70
+ @client.sentry_client.capture_message('Exception in Clever::Connection', **{ extra: payload })
71
+ end
72
+
73
+ class GatewayTimeoutError < StandardError; end
51
74
  end
52
75
  end
@@ -23,6 +23,10 @@ module Clever
23
23
  @status == 200
24
24
  end
25
25
 
26
+ def timed_out?
27
+ @status == 504
28
+ end
29
+
26
30
  private
27
31
 
28
32
  def uri(kind)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clever
4
- VERSION = '3.2.9'
4
+ VERSION = '3.2.11'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clever
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.9
4
+ version: 3.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Julius
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-24 00:00:00.000000000 Z
11
+ date: 2025-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -140,30 +140,30 @@ dependencies:
140
140
  name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '1.53'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '1.53'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: '0.22'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '0'
166
+ version: '0.22'
167
167
  description: Wrapper for the Clever API.
168
168
  email:
169
169
  - robertmjulius@gmail.com
@@ -171,13 +171,12 @@ executables: []
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
- - ".circleci/config.yml"
175
174
  - ".codeclimate.yml"
176
175
  - ".gitignore"
177
176
  - ".rspec"
178
177
  - ".rubocop.yml"
179
178
  - ".ruby-style.yml"
180
- - ".ruby-version"
179
+ - ".tool-versions"
181
180
  - Gemfile
182
181
  - Gemfile.lock
183
182
  - LICENSE.txt
@@ -211,7 +210,7 @@ licenses:
211
210
  - MIT
212
211
  metadata:
213
212
  allowed_push_host: https://rubygems.org
214
- post_install_message:
213
+ post_install_message:
215
214
  rdoc_options: []
216
215
  require_paths:
217
216
  - lib
@@ -227,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
226
  version: '0'
228
227
  requirements: []
229
228
  rubygems_version: 3.1.6
230
- signing_key:
229
+ signing_key:
231
230
  specification_version: 4
232
231
  summary: Wrapper for the Clever API.
233
232
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,116 +0,0 @@
1
- version: 2
2
- defaults: &defaults
3
- docker:
4
- - image: circleci/ruby:2.4.1-node-browsers
5
- working_directory: ~/repo
6
- restore_ruby_cache: &restore_ruby_cache
7
- restore_cache:
8
- keys:
9
- - v2-dependencies-{{ checksum "Gemfile.lock" }}
10
- - v2-dependencies-
11
- setup_rubygems: &setup_rubygems
12
- run:
13
- name: Add RubyGems API key
14
- command: |
15
- mkdir -p ~/.gem
16
- echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
17
- chmod 0600 ~/.gem/credentials
18
-
19
- install_dependencies: &install_dependencies
20
- run:
21
- name: Install Dependencies
22
- command: |
23
- echo 'export BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")' >> $BASH_ENV
24
- source $BASH_ENV
25
- gem install bundler -v '2.1.4'
26
- bundle install --jobs=4 --retry=3 --path vendor/bundle
27
-
28
- save_ruby_cache: &save_ruby_cache
29
- save_cache:
30
- paths:
31
- - ./vendor/bundle
32
- key: v1-dependencies-{{ checksum "Gemfile.lock" }}
33
- download_cc_reporter: &download_cc_reporter
34
- run:
35
- name: Download Code Climate Test Reporter
36
- command: |
37
- mkdir -p tmp/
38
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./tmp/cc-test-reporter
39
- chmod +x ./tmp/cc-test-reporter
40
-
41
-
42
-
43
-
44
- persist: &persist
45
- persist_to_workspace:
46
- root: tmp
47
- paths:
48
- - cc-test-reporter
49
- run_rspec_tests: &run_rspec_tests
50
- run:
51
- name: Run RSpec Tests
52
- command: |
53
- mkdir /tmp/test-results
54
- ./tmp/cc-test-reporter before-build
55
- TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
56
- circleci tests split --split-by=timings)"
57
-
58
- bundle exec rspec --format progress \
59
- --format RspecJunitFormatter \
60
- --out /tmp/test-results/rspec.xml \
61
- --format progress \
62
- $TEST_FILES
63
- ./tmp/cc-test-reporter format-coverage -t simplecov -o "tmp/codeclimate.json"
64
-
65
- upload_coverage: &upload_coverage
66
- run:
67
- name: Upload Coverage
68
- command: |
69
- ./tmp/cc-test-reporter upload-coverage -i tmp/codeclimate.json
70
-
71
- release_rubygem: &release_rubygem
72
- run:
73
- name: Release new version to RubyGems
74
- command: |
75
- bundle exec rake release
76
-
77
- jobs:
78
- rspec-tests:
79
- <<: *defaults
80
- steps:
81
- - checkout
82
- - *restore_ruby_cache
83
- - *install_dependencies
84
- - *save_ruby_cache
85
- - *download_cc_reporter
86
- - *persist
87
- - *run_rspec_tests
88
- - *upload_coverage
89
- - store_test_results:
90
- path: /tmp/test-results
91
- - store_artifacts:
92
- path: /tmp/test-results
93
- destination: test-results
94
-
95
- release:
96
- <<: *defaults
97
- steps:
98
- - checkout
99
- - *restore_ruby_cache
100
- - *setup_rubygems
101
- - *install_dependencies
102
- - *save_ruby_cache
103
- - *release_rubygem
104
-
105
- workflows:
106
- version: 2
107
- commit:
108
- jobs:
109
- - rspec-tests
110
- - release:
111
- requires:
112
- - rspec-tests
113
- filters:
114
- branches:
115
- only:
116
- - master
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.4.1