quiz_api_client 2.4.2 → 2.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 019fb5be46485bfe51fa89b86e237dd860dde74f
4
- data.tar.gz: cb8c846ad17c8c6d54e21e316d0f9bab8ffe17f4
3
+ metadata.gz: f6be53ea487e4dde2bf8f57ceda6bcc0e28f1203
4
+ data.tar.gz: dcc4cbdced4de27dab3a0f2b9ff826028b282360
5
5
  SHA512:
6
- metadata.gz: c7f0d24d1b650dadf17a88bffc65439b741bc855d4c3d85cf8381d84d3ecb4e6a3832cac96324c7e5b348d1777c596e9fb1afcb496d1d4c1b7bfde8d19a6e473
7
- data.tar.gz: 6de74ac09879a9d567de198d6c316ae96548df3f6b15f538bc7cec3ca173ad82f036577dc704d44eb1f76951229f930165180f33a45bc02cd68d8616fcb690c1
6
+ metadata.gz: 5949cfe9e2580614676224ab87e90ef0598a84aa2e9edb2506ae98a42b13e89c0205f1ec14ba947099d1578f3cba8dc77f430b216aeb355cbebdceb0b61cebff
7
+ data.tar.gz: 6ae2b643918ab843bbfc46c25af37034b8cf6dca31ae75f0725ea7beb84fb67b2126ba565194190225fca4878a8cec4a36b6fccc360bb37eb230ca5f3fa0f1df
data/.rubocop.yml CHANGED
@@ -1,10 +1,3 @@
1
- Rails:
2
- Enabled: true
3
-
4
- Rails/HttpPositionalArguments:
5
- # Renable once we are on Rails v5
6
- Enabled: false
7
-
8
1
  AllCops:
9
2
  TargetRubyVersion: 2.3
10
3
 
@@ -20,11 +13,10 @@ Metrics/MethodLength:
20
13
  Metrics/BlockLength:
21
14
  Max: 30
22
15
  Exclude:
23
- - 'spec/**/*.rb'
24
- - 'config/routes.rb'
25
- - 'app/docs/**/*.rb'
16
+ - quiz_api_client.gemspec
17
+ - spec/**/*.rb
26
18
 
27
- Style/AlignParameters:
19
+ Layout/AlignParameters:
28
20
  # Alignment of parameters in multi-line method calls.
29
21
  #
30
22
  # The `with_fixed_indentation` style aligns the following lines with one
@@ -34,6 +26,12 @@ Style/AlignParameters:
34
26
  # b)
35
27
  EnforcedStyle: with_fixed_indentation
36
28
 
29
+ Layout/CaseIndentation:
30
+ EnforcedStyle: end
31
+
32
+ Lint/EndAlignment:
33
+ EnforcedStyleAlignWith: variable
34
+
37
35
  Style/ClassAndModuleChildren:
38
36
  # Checks the style of children definitions at classes and modules.
39
37
  #
@@ -60,12 +58,6 @@ Style/Documentation:
60
58
  # classes or other modules.
61
59
  Enabled: false
62
60
 
63
- Lint/EndAlignment:
64
- AlignWith: variable
65
-
66
- Style/CaseIndentation:
67
- IndentWhenRelativeTo: end
68
-
69
61
  Style/FrozenStringLiteralComment:
70
62
  # `when_needed` will add the frozen string literal comment to files
71
63
  # only when the `TargetRubyVersion` is set to 2.3+.
data/Dockerfile CHANGED
@@ -9,7 +9,7 @@ USER root
9
9
  RUN chown -R docker:docker /app
10
10
 
11
11
  USER docker
12
- RUN /bin/bash -l -c "cd /app && rvm-exec 2.4 bundle install --jobs 5"
12
+ RUN /bin/bash -l -c "rvm-exec 2.4 bundle install --jobs 5"
13
13
  COPY . /app
14
14
  RUN rm -f Gemfile.lock
15
15
 
data/README.md CHANGED
@@ -174,9 +174,9 @@ client.quiz_session_events_service.list(
174
174
 
175
175
  After checking out the repo, run `bin/setup` to install dependencies.
176
176
 
177
- Then, run `rake spec` to run the tests.
177
+ Then, run `bundle exec rake spec` to run the tests.
178
178
 
179
- You can also run `rake console` for an interactive prompt that will allow you to experiment.
179
+ You can also run `bundle exec rake console` for an interactive prompt that will allow you to experiment.
180
180
 
181
181
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
182
182
 
data/build.sh CHANGED
@@ -24,6 +24,11 @@ function cleanup() {
24
24
  trap cleanup INT TERM EXIT
25
25
 
26
26
  docker-compose build --pull
27
+
28
+ echo "Running Rubocop..."
29
+ docker-compose run --rm testrunner /bin/bash -lc \
30
+ "rvm-exec 2.4 bundle exec rubocop --fail-level autocorrect"
31
+
27
32
  echo "Running test suite..."
28
33
  docker-compose run --name coverage testrunner $@
29
34
 
@@ -46,13 +46,15 @@ module QuizApiClient
46
46
 
47
47
  def initialize_logger(log_level)
48
48
  HTTParty::Logger.add_formatter('quiz_api_client_json_formatter', QuizApiClient::JSONFormatter)
49
- @logger = ::Logger.new(STDOUT,
50
- formatter: proc {|_,_,_,msg| msg.merge({consumer_request_id: @consumer_request_id}).to_json },
51
- level: unfriendly_logger_level(log_level)
52
- )
53
- @logger_config = { logger: @logger,
54
- log_level: log_level,
55
- log_format: :quiz_api_client_json_formatter
49
+ @logger = ::Logger.new(
50
+ STDOUT,
51
+ formatter: proc { |_, _, _, msg| msg.merge(consumer_request_id: @consumer_request_id).to_json },
52
+ level: unfriendly_logger_level(log_level)
53
+ )
54
+ @logger_config = {
55
+ logger: @logger,
56
+ log_level: log_level,
57
+ log_format: :quiz_api_client_json_formatter
56
58
  }
57
59
  end
58
60
 
@@ -83,9 +85,10 @@ module QuizApiClient
83
85
 
84
86
  def make_paginated_request(method, url, options)
85
87
  entities = []
86
- request_url, request_options = url, options
88
+ request_url = url
89
+ request_options = options
87
90
 
88
- until request_url.nil? do
91
+ until request_url.nil?
89
92
  resp = make_request(method, request_url, request_options)
90
93
  entities.concat(resp.parsed_response)
91
94
  request_url, request_options = next_page(resp, url, options)
@@ -114,7 +117,7 @@ module QuizApiClient
114
117
  end
115
118
 
116
119
  def next_page_link(response, options)
117
- return unless response.headers['link'].present?
120
+ return if response.headers['link'].blank?
118
121
  links = LinkHeader.parse(response.headers['link']).links
119
122
  next_link = links.find { |link| link['rel'] == 'next' }
120
123
  [next_link.href, options] if next_link
@@ -129,7 +132,7 @@ module QuizApiClient
129
132
  last_evaluated_hash_key: hash_key,
130
133
  last_evaluated_range_key: range_key
131
134
  )
132
- [ url, options.merge(query: query) ]
135
+ [url, options.merge(query: query)]
133
136
  end
134
137
  end
135
138
  end
@@ -6,13 +6,12 @@ module QuizApiClient
6
6
  end
7
7
 
8
8
  def format(request, response)
9
- @logger.send(@level, {
9
+ @logger.send(
10
+ @level,
10
11
  client_request_id: response.headers.dig('x-request-id', 0),
11
12
  request_url: request.last_uri,
12
13
  response_code: response.code
13
- })
14
+ )
14
15
  end
15
16
  end
16
17
  end
17
-
18
-
@@ -1,16 +1,16 @@
1
1
  module QuizApiClient::Services
2
2
  class BaseApiService
3
- attr_reader :consumer_key, :host, :shared_secret,
4
- :protocol, :errors
3
+ attr_reader :consumer_key, :errors, :host, :protocol, :shared_secret
5
4
 
6
- def initialize(consumer_key:, host:,
7
- shared_secret:, protocol: 'https', consumer_request_id: nil)
5
+ def initialize(
6
+ consumer_key:, consumer_request_id: nil, host:, protocol: 'https', shared_secret:
7
+ )
8
8
  @consumer_key = consumer_key
9
+ @consumer_request_id = consumer_request_id
9
10
  @host = host
10
- @shared_secret = shared_secret
11
11
  @protocol = protocol
12
+ @shared_secret = shared_secret
12
13
  @errors = []
13
- @consumer_request_id = consumer_request_id
14
14
  end
15
15
 
16
16
  private
@@ -9,10 +9,12 @@ module QuizApiClient::Services
9
9
  private
10
10
 
11
11
  def get_from_quiz_api(params:, token:, all:)
12
- client(token: token).get(
13
- "/api/quiz_sessions/#{params[:quiz_session_id]}/results/#{params[:quiz_session_result_id]}/session_item_results",
14
- all: all
12
+ path = format(
13
+ '/api/quiz_sessions/%<session>d/results/%<result>d/session_item_results',
14
+ session: params[:quiz_session_id],
15
+ result: params[:quiz_session_result_id]
15
16
  )
17
+ client(token: token).get(path, all: all)
16
18
  end
17
19
  end
18
20
  end
@@ -1,3 +1,3 @@
1
1
  module QuizApiClient
2
- VERSION = '2.4.2'.freeze
2
+ VERSION = '2.4.3'.freeze
3
3
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'quiz_api_client/version'
@@ -20,7 +19,7 @@ Gem::Specification.new do |spec|
20
19
  'Robin Kuss',
21
20
  'Ryan Taylor'
22
21
  ]
23
- spec.email = [
22
+ spec.email = [
24
23
  'acallejas@instructure.com',
25
24
  'bpetty@instructure.com',
26
25
  'cprescott@instructure.com',
@@ -41,15 +40,18 @@ Gem::Specification.new do |spec|
41
40
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
42
41
  spec.require_paths = ['lib']
43
42
 
44
- spec.add_dependency 'httparty', '0.14.0'
45
- spec.add_dependency 'jwt', '~> 1.5'
46
- spec.add_dependency 'link_header'
43
+ spec.required_ruby_version = '>= 2.3'
47
44
 
48
- spec.add_development_dependency 'bundler', '~> 1.12'
49
- spec.add_development_dependency 'simplecov'
50
- spec.add_development_dependency 'webmock'
45
+ spec.add_dependency 'httparty', '~> 0.14.0'
46
+ spec.add_dependency 'jwt', '>= 1.5', '< 3.0'
47
+ spec.add_dependency 'link_header', '~> 0.0'
48
+
49
+ spec.add_development_dependency 'bundler', '~> 1.15'
51
50
  spec.add_development_dependency 'pact', '~> 1.19.2'
52
51
  spec.add_development_dependency 'pact_broker-client', '~> 1.13.1'
53
- spec.add_development_dependency 'rake', '~> 10.0'
54
- spec.add_development_dependency 'rspec', '~> 3.0'
52
+ spec.add_development_dependency 'rake', '~> 12.0'
53
+ spec.add_development_dependency 'rspec', '~> 3.7'
54
+ spec.add_development_dependency 'rubocop', '~> 0.52.1'
55
+ spec.add_development_dependency 'simplecov'
56
+ spec.add_development_dependency 'webmock'
55
57
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quiz_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Wang
@@ -19,148 +19,168 @@ authors:
19
19
  autorequire:
20
20
  bindir: exe
21
21
  cert_chain: []
22
- date: 2017-12-07 00:00:00.000000000 Z
22
+ date: 2018-02-14 00:00:00.000000000 Z
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: httparty
26
26
  requirement: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - '='
28
+ - - "~>"
29
29
  - !ruby/object:Gem::Version
30
30
  version: 0.14.0
31
31
  type: :runtime
32
32
  prerelease: false
33
33
  version_requirements: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - '='
35
+ - - "~>"
36
36
  - !ruby/object:Gem::Version
37
37
  version: 0.14.0
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: jwt
40
40
  requirement: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - "~>"
42
+ - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: '1.5'
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
45
48
  type: :runtime
46
49
  prerelease: false
47
50
  version_requirements: !ruby/object:Gem::Requirement
48
51
  requirements:
49
- - - "~>"
52
+ - - ">="
50
53
  - !ruby/object:Gem::Version
51
54
  version: '1.5'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.0'
52
58
  - !ruby/object:Gem::Dependency
53
59
  name: link_header
54
60
  requirement: !ruby/object:Gem::Requirement
55
61
  requirements:
56
- - - ">="
62
+ - - "~>"
57
63
  - !ruby/object:Gem::Version
58
- version: '0'
64
+ version: '0.0'
59
65
  type: :runtime
60
66
  prerelease: false
61
67
  version_requirements: !ruby/object:Gem::Requirement
62
68
  requirements:
63
- - - ">="
69
+ - - "~>"
64
70
  - !ruby/object:Gem::Version
65
- version: '0'
71
+ version: '0.0'
66
72
  - !ruby/object:Gem::Dependency
67
73
  name: bundler
68
74
  requirement: !ruby/object:Gem::Requirement
69
75
  requirements:
70
76
  - - "~>"
71
77
  - !ruby/object:Gem::Version
72
- version: '1.12'
78
+ version: '1.15'
73
79
  type: :development
74
80
  prerelease: false
75
81
  version_requirements: !ruby/object:Gem::Requirement
76
82
  requirements:
77
83
  - - "~>"
78
84
  - !ruby/object:Gem::Version
79
- version: '1.12'
85
+ version: '1.15'
80
86
  - !ruby/object:Gem::Dependency
81
- name: simplecov
87
+ name: pact
82
88
  requirement: !ruby/object:Gem::Requirement
83
89
  requirements:
84
- - - ">="
90
+ - - "~>"
85
91
  - !ruby/object:Gem::Version
86
- version: '0'
92
+ version: 1.19.2
87
93
  type: :development
88
94
  prerelease: false
89
95
  version_requirements: !ruby/object:Gem::Requirement
90
96
  requirements:
91
- - - ">="
97
+ - - "~>"
92
98
  - !ruby/object:Gem::Version
93
- version: '0'
99
+ version: 1.19.2
94
100
  - !ruby/object:Gem::Dependency
95
- name: webmock
101
+ name: pact_broker-client
96
102
  requirement: !ruby/object:Gem::Requirement
97
103
  requirements:
98
- - - ">="
104
+ - - "~>"
99
105
  - !ruby/object:Gem::Version
100
- version: '0'
106
+ version: 1.13.1
101
107
  type: :development
102
108
  prerelease: false
103
109
  version_requirements: !ruby/object:Gem::Requirement
104
110
  requirements:
105
- - - ">="
111
+ - - "~>"
106
112
  - !ruby/object:Gem::Version
107
- version: '0'
113
+ version: 1.13.1
108
114
  - !ruby/object:Gem::Dependency
109
- name: pact
115
+ name: rake
110
116
  requirement: !ruby/object:Gem::Requirement
111
117
  requirements:
112
118
  - - "~>"
113
119
  - !ruby/object:Gem::Version
114
- version: 1.19.2
120
+ version: '12.0'
115
121
  type: :development
116
122
  prerelease: false
117
123
  version_requirements: !ruby/object:Gem::Requirement
118
124
  requirements:
119
125
  - - "~>"
120
126
  - !ruby/object:Gem::Version
121
- version: 1.19.2
127
+ version: '12.0'
122
128
  - !ruby/object:Gem::Dependency
123
- name: pact_broker-client
129
+ name: rspec
124
130
  requirement: !ruby/object:Gem::Requirement
125
131
  requirements:
126
132
  - - "~>"
127
133
  - !ruby/object:Gem::Version
128
- version: 1.13.1
134
+ version: '3.7'
129
135
  type: :development
130
136
  prerelease: false
131
137
  version_requirements: !ruby/object:Gem::Requirement
132
138
  requirements:
133
139
  - - "~>"
134
140
  - !ruby/object:Gem::Version
135
- version: 1.13.1
141
+ version: '3.7'
136
142
  - !ruby/object:Gem::Dependency
137
- name: rake
143
+ name: rubocop
138
144
  requirement: !ruby/object:Gem::Requirement
139
145
  requirements:
140
146
  - - "~>"
141
147
  - !ruby/object:Gem::Version
142
- version: '10.0'
148
+ version: 0.52.1
143
149
  type: :development
144
150
  prerelease: false
145
151
  version_requirements: !ruby/object:Gem::Requirement
146
152
  requirements:
147
153
  - - "~>"
148
154
  - !ruby/object:Gem::Version
149
- version: '10.0'
155
+ version: 0.52.1
150
156
  - !ruby/object:Gem::Dependency
151
- name: rspec
157
+ name: simplecov
152
158
  requirement: !ruby/object:Gem::Requirement
153
159
  requirements:
154
- - - "~>"
160
+ - - ">="
155
161
  - !ruby/object:Gem::Version
156
- version: '3.0'
162
+ version: '0'
157
163
  type: :development
158
164
  prerelease: false
159
165
  version_requirements: !ruby/object:Gem::Requirement
160
166
  requirements:
161
- - - "~>"
167
+ - - ">="
162
168
  - !ruby/object:Gem::Version
163
- version: '3.0'
169
+ version: '0'
170
+ - !ruby/object:Gem::Dependency
171
+ name: webmock
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
164
184
  description:
165
185
  email:
166
186
  - acallejas@instructure.com
@@ -225,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
225
245
  requirements:
226
246
  - - ">="
227
247
  - !ruby/object:Gem::Version
228
- version: '0'
248
+ version: '2.3'
229
249
  required_rubygems_version: !ruby/object:Gem::Requirement
230
250
  requirements:
231
251
  - - ">="
@@ -233,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
253
  version: '0'
234
254
  requirements: []
235
255
  rubyforge_project:
236
- rubygems_version: 2.6.13
256
+ rubygems_version: 2.6.11
237
257
  signing_key:
238
258
  specification_version: 4
239
259
  summary: Ruby client for quiz_api