netology-tasks_client 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebb54b9d10c5a651e2532deb77f9b7a898785c1a6ed568ad4653e1545e2d4435
4
- data.tar.gz: ec0290232e8e5966a6803b1739fa46592a0bd4cb14058708a2b54ae957c4c021
3
+ metadata.gz: 0cf94c9d49cfdf80e9eafc346fb01965e781c0e555e46bb0608b2854b59f6ec0
4
+ data.tar.gz: a5ad538d0bbe04b0b46a70dbf3ac08e6cad79e03d95ffca6d6d13dac8350a437
5
5
  SHA512:
6
- metadata.gz: c95d6bea36c3f8f9b2c1ac58548ccbfc04d91f9e260f01486d107c45c7f1507158e46f0535bfc69074b176f31c2463cb82639cb26c7193e5aee2a90f5bb78566
7
- data.tar.gz: 12656485674c46092f56be70c46aef259cfb70dce2368d3d3fbf92e2924b2dbb3c05d49c3d7473ff86bb808bea95735a556875b4276b39b6b1458043a1e4b47d
6
+ metadata.gz: 1651ba2a09636a795a7542f1f6b5ee6b723e678073698adc76f891b5b388d699ae26253ab9bc56d9db8aa88d2b41f3d9734fec047f5de10c21810e7305ff9d74
7
+ data.tar.gz: a74288b67627b20a11fede51b434d4a7f2942871c7b5b258f5dd36b7738ff13d5ece7aec1ee196ab3b872957d5f0372c95c5e45f887a189ef4dfbfa23b57e99a
@@ -2,6 +2,7 @@ require 'netology_group/tasks_client/version'
2
2
  require 'netology_group/tasks_client/config'
3
3
  require 'netology_group/tasks_client/error'
4
4
  require 'netology_group/tasks_client/response'
5
+ require 'netology_group/tasks_client/task_response'
5
6
  require 'netology_group/tasks_client/client'
6
7
 
7
8
  module NetologyGroup
@@ -39,7 +40,8 @@ module NetologyGroup
39
40
  def find_task(task_id, options = {})
40
41
  params = {
41
42
  method: :get,
42
- path: "/tasks/#{task_id}"
43
+ path: "/tasks/#{task_id}",
44
+ response_class: TaskResponse
43
45
  }
44
46
  client.request(params.merge(options))
45
47
  end
@@ -5,7 +5,7 @@ module NetologyGroup
5
5
  end
6
6
 
7
7
  # @return [Hash]
8
- def request(method:, path:, body: nil, api_version: nil, query: nil, expects: [200, 201, 422])
8
+ def request(method:, path:, body: nil, api_version: nil, query: nil, response_class: Response, expects: [200, 201, 422])
9
9
  response =
10
10
  connection.request(
11
11
  method: method,
@@ -14,7 +14,7 @@ module NetologyGroup
14
14
  query: query,
15
15
  expects: expects
16
16
  )
17
- Response.new(response)
17
+ response_class.new(response)
18
18
  # rescue Excon::Error
19
19
  # raise Error
20
20
  end
@@ -4,9 +4,8 @@ module NetologyGroup
4
4
  module TasksClient
5
5
  class Response
6
6
  attr_reader :excon_response, :status, :body
7
- attr_reader :next_page_url, :previous_page_url
8
7
 
9
- # @param [Excon::Response] response
8
+ # @param [Excon::Response] excon_response
10
9
  def initialize(excon_response)
11
10
  @excon_response = excon_response
12
11
  @status = excon_response.status
@@ -0,0 +1,38 @@
1
+ module NetologyGroup
2
+ module TasksClient
3
+ class TaskResponse < Response
4
+ attr_reader :original_body
5
+
6
+ def initialize(_)
7
+ super
8
+ @original_body = body.deep_dup
9
+ end
10
+
11
+ # Скрыть правильные ответы и подсказки
12
+ def secure_answers
13
+ delete_correct_answers
14
+ set_hints_limit(0)
15
+ self
16
+ end
17
+
18
+ def hints_limit(limit)
19
+ set_hints_limit(limit)
20
+ self
21
+ end
22
+
23
+ private
24
+
25
+ def delete_correct_answers
26
+ body['questions'].each do |question|
27
+ question['answers'].each.with_index do |_, index|
28
+ question['answers'][index].delete('correct')
29
+ end
30
+ end
31
+ end
32
+
33
+ def set_hints_limit(limit)
34
+ body['hints'] = original_body['hints']&.take(limit)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,5 @@
1
1
  module NetologyGroup
2
2
  module TasksClient
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '0.2.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netology-tasks_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Skuryatin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-14 00:00:00.000000000 Z
11
+ date: 2018-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -115,6 +115,7 @@ files:
115
115
  - lib/netology_group/tasks_client/config.rb
116
116
  - lib/netology_group/tasks_client/error.rb
117
117
  - lib/netology_group/tasks_client/response.rb
118
+ - lib/netology_group/tasks_client/task_response.rb
118
119
  - lib/netology_group/tasks_client/version.rb
119
120
  - netology-tasks_client.gemspec
120
121
  homepage: https://netology-group.ru