yoti 1.6.4 → 1.10.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +22 -224
  4. data/lib/yoti.rb +63 -1
  5. data/lib/yoti/activity_details.rb +3 -5
  6. data/lib/yoti/client.rb +13 -4
  7. data/lib/yoti/configuration.rb +8 -3
  8. data/lib/yoti/data_type/age_verification.rb +1 -1
  9. data/lib/yoti/data_type/base_profile.rb +1 -1
  10. data/lib/yoti/data_type/document_details.rb +1 -1
  11. data/lib/yoti/data_type/image.rb +4 -12
  12. data/lib/yoti/data_type/image_jpeg.rb +2 -0
  13. data/lib/yoti/data_type/image_png.rb +2 -0
  14. data/lib/yoti/data_type/media.rb +22 -0
  15. data/lib/yoti/data_type/signed_time_stamp.rb +1 -1
  16. data/lib/yoti/doc_scan/client.rb +191 -0
  17. data/lib/yoti/doc_scan/constants.rb +35 -0
  18. data/lib/yoti/doc_scan/errors.rb +81 -0
  19. data/lib/yoti/doc_scan/session/create/create_session_result.rb +50 -0
  20. data/lib/yoti/doc_scan/session/create/document_filter.rb +31 -0
  21. data/lib/yoti/doc_scan/session/create/document_restrictions_filter.rb +140 -0
  22. data/lib/yoti/doc_scan/session/create/notification_config.rb +142 -0
  23. data/lib/yoti/doc_scan/session/create/objective/objective.rb +31 -0
  24. data/lib/yoti/doc_scan/session/create/objective/proof_of_address_objective.rb +31 -0
  25. data/lib/yoti/doc_scan/session/create/orthogonal_restrictions_filter.rb +150 -0
  26. data/lib/yoti/doc_scan/session/create/requested_check.rb +39 -0
  27. data/lib/yoti/doc_scan/session/create/requested_document_authenticity_check.rb +95 -0
  28. data/lib/yoti/doc_scan/session/create/requested_face_match_check.rb +95 -0
  29. data/lib/yoti/doc_scan/session/create/requested_id_document_comparison_check.rb +53 -0
  30. data/lib/yoti/doc_scan/session/create/requested_liveness_check.rb +108 -0
  31. data/lib/yoti/doc_scan/session/create/requested_supplementary_doc_text_extraction_task.rb +94 -0
  32. data/lib/yoti/doc_scan/session/create/requested_task.rb +39 -0
  33. data/lib/yoti/doc_scan/session/create/requested_text_extraction_task.rb +116 -0
  34. data/lib/yoti/doc_scan/session/create/required_document.rb +31 -0
  35. data/lib/yoti/doc_scan/session/create/required_id_document.rb +53 -0
  36. data/lib/yoti/doc_scan/session/create/required_supplementary_document.rb +90 -0
  37. data/lib/yoti/doc_scan/session/create/sdk_config.rb +221 -0
  38. data/lib/yoti/doc_scan/session/create/session_specification.rb +221 -0
  39. data/lib/yoti/doc_scan/session/retrieve/authenticity_check_response.rb +12 -0
  40. data/lib/yoti/doc_scan/session/retrieve/breakdown_response.rb +38 -0
  41. data/lib/yoti/doc_scan/session/retrieve/check_response.rb +63 -0
  42. data/lib/yoti/doc_scan/session/retrieve/details_response.rb +28 -0
  43. data/lib/yoti/doc_scan/session/retrieve/document_fields_response.rb +21 -0
  44. data/lib/yoti/doc_scan/session/retrieve/document_id_photo_response.rb +21 -0
  45. data/lib/yoti/doc_scan/session/retrieve/face_map_response.rb +21 -0
  46. data/lib/yoti/doc_scan/session/retrieve/face_match_check_response.rb +12 -0
  47. data/lib/yoti/doc_scan/session/retrieve/file_response.rb +21 -0
  48. data/lib/yoti/doc_scan/session/retrieve/frame_response.rb +21 -0
  49. data/lib/yoti/doc_scan/session/retrieve/generated_check_response.rb +28 -0
  50. data/lib/yoti/doc_scan/session/retrieve/generated_media.rb +28 -0
  51. data/lib/yoti/doc_scan/session/retrieve/generated_supplementary_document_text_data_check_response.rb +12 -0
  52. data/lib/yoti/doc_scan/session/retrieve/generated_text_data_check_response.rb +12 -0
  53. data/lib/yoti/doc_scan/session/retrieve/get_session_result.rb +145 -0
  54. data/lib/yoti/doc_scan/session/retrieve/id_document_comparison_check_response.rb +12 -0
  55. data/lib/yoti/doc_scan/session/retrieve/id_document_resource_response.rb +57 -0
  56. data/lib/yoti/doc_scan/session/retrieve/liveness_check_response.rb +12 -0
  57. data/lib/yoti/doc_scan/session/retrieve/liveness_resource_response.rb +24 -0
  58. data/lib/yoti/doc_scan/session/retrieve/media_response.rb +38 -0
  59. data/lib/yoti/doc_scan/session/retrieve/page_response.rb +37 -0
  60. data/lib/yoti/doc_scan/session/retrieve/recommendation_response.rb +34 -0
  61. data/lib/yoti/doc_scan/session/retrieve/report_response.rb +31 -0
  62. data/lib/yoti/doc_scan/session/retrieve/resource_container.rb +69 -0
  63. data/lib/yoti/doc_scan/session/retrieve/resource_response.rb +41 -0
  64. data/lib/yoti/doc_scan/session/retrieve/supplementary_document_resource_response.rb +57 -0
  65. data/lib/yoti/doc_scan/session/retrieve/supplementary_document_text_data_check_response.rb +12 -0
  66. data/lib/yoti/doc_scan/session/retrieve/supplementary_document_text_extraction_task_response.rb +18 -0
  67. data/lib/yoti/doc_scan/session/retrieve/task_response.rb +89 -0
  68. data/lib/yoti/doc_scan/session/retrieve/text_data_check_response.rb +12 -0
  69. data/lib/yoti/doc_scan/session/retrieve/text_extraction_task_response.rb +18 -0
  70. data/lib/yoti/doc_scan/session/retrieve/zoom_liveness_resource_response.rb +33 -0
  71. data/lib/yoti/doc_scan/support/supported_documents.rb +60 -0
  72. data/lib/yoti/dynamic_share_service/dynamic_scenario.rb +5 -0
  73. data/lib/yoti/dynamic_share_service/extension/extension.rb +3 -0
  74. data/lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb +3 -0
  75. data/lib/yoti/dynamic_share_service/extension/thirdparty_attribute_extension.rb +1 -1
  76. data/lib/yoti/dynamic_share_service/extension/transactional_flow_extension.rb +4 -0
  77. data/lib/yoti/dynamic_share_service/policy/dynamic_policy.rb +74 -9
  78. data/lib/yoti/dynamic_share_service/policy/wanted_anchor.rb +3 -0
  79. data/lib/yoti/dynamic_share_service/policy/wanted_attribute.rb +5 -0
  80. data/lib/yoti/dynamic_share_service/share_url.rb +26 -33
  81. data/lib/yoti/errors.rb +15 -2
  82. data/lib/yoti/http/aml_check_request.rb +12 -6
  83. data/lib/yoti/http/payloads/aml_address.rb +4 -0
  84. data/lib/yoti/http/payloads/aml_profile.rb +7 -1
  85. data/lib/yoti/http/profile_request.rb +11 -6
  86. data/lib/yoti/http/request.rb +219 -18
  87. data/lib/yoti/http/signed_request.rb +13 -4
  88. data/lib/yoti/protobuf/main.rb +8 -8
  89. data/lib/yoti/share/attribute_issuance_details.rb +6 -0
  90. data/lib/yoti/ssl.rb +4 -4
  91. data/lib/yoti/util/age_processor.rb +1 -1
  92. data/lib/yoti/util/anchor_processor.rb +2 -2
  93. data/lib/yoti/util/log.rb +1 -1
  94. data/lib/yoti/util/validation.rb +41 -0
  95. data/lib/yoti/version.rb +1 -1
  96. data/yoti.gemspec +18 -6
  97. metadata +69 -33
  98. data/.github/ISSUE_TEMPLATE.md +0 -17
  99. data/.gitignore +0 -39
  100. data/CONTRIBUTING.md +0 -98
  101. data/Guardfile +0 -11
  102. data/Rakefile +0 -54
  103. data/login_flow.png +0 -0
  104. data/rubocop.yml +0 -57
  105. data/yardstick.yml +0 -9
@@ -7,7 +7,7 @@ module Yoti
7
7
  #
8
8
  class AnchorProcessor
9
9
  #
10
- # @param [Array<Yoti::Protobuf::Attrpubapi::Anchor>]
10
+ # @param [Array<Yoti::Protobuf::Attrpubapi::Anchor>] anchors_list
11
11
  #
12
12
  def initialize(anchors_list)
13
13
  @anchors_list = anchors_list
@@ -20,7 +20,7 @@ module Yoti
20
20
  # @return [Array<Yoti::Anchor>]
21
21
  #
22
22
  def process
23
- result_data = ANCHOR_LIST_KEYS.map { |key, _value| [key, []] }.to_h
23
+ result_data = ANCHOR_LIST_KEYS.transform_values { |_value| [] }
24
24
 
25
25
  @anchors_list.each do |anchor|
26
26
  x509_certs_list = convert_certs_list_to_X509(anchor.origin_server_certs)
@@ -4,7 +4,7 @@ module Yoti
4
4
  module Log
5
5
  class << self
6
6
  def logger
7
- @logger || create_logger(STDOUT)
7
+ @logger || create_logger($stdout)
8
8
  end
9
9
 
10
10
  def output(output_stream)
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yoti
4
+ class Validation
5
+ #
6
+ # @param value
7
+ # @param [String] name
8
+ #
9
+ def self.assert_not_nil(value, name)
10
+ return unless value.nil?
11
+
12
+ raise(ArgumentError, "#{name} must not be nil")
13
+ end
14
+
15
+ #
16
+ # @param [Class] type
17
+ # @param value
18
+ # @param [String] name
19
+ # @param [Boolean] nilable
20
+ #
21
+ def self.assert_is_a(type, value, name, nilable = false)
22
+ return if nilable && value.nil?
23
+ return if value.is_a?(type)
24
+
25
+ raise(ArgumentError, "#{name} must be a #{type.name}")
26
+ end
27
+
28
+ #
29
+ # @param [Symbol] method
30
+ # @param value
31
+ # @param [String] name
32
+ #
33
+ def self.assert_respond_to(method, value, name)
34
+ assert_not_nil(value, name)
35
+
36
+ return if value.respond_to?(method)
37
+
38
+ raise(ArgumentError, "#{name} must respond to #{method}")
39
+ end
40
+ end
41
+ end
@@ -1,4 +1,4 @@
1
1
  module Yoti
2
2
  # @return [String] the gem's current version
3
- VERSION = '1.6.4'.freeze
3
+ VERSION = '1.10.0'.freeze
4
4
  end
@@ -5,8 +5,8 @@ require 'yoti/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'yoti'
7
7
  spec.version = Yoti::VERSION
8
- spec.authors = ['Sebastian Zaremba']
9
- spec.email = ['tech@yoti.com']
8
+ spec.authors = ['Yoti']
9
+ spec.email = ['websdk@yoti.com']
10
10
 
11
11
  spec.summary = 'Yoti Ruby SDK for back-end integration.'
12
12
  spec.description = <<-DESC
@@ -18,7 +18,20 @@ Gem::Specification.new do |spec|
18
18
  spec.homepage = 'https://github.com/getyoti/yoti-ruby-sdk'
19
19
  spec.license = 'MIT'
20
20
 
21
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples)/|^sonar-project.properties$|^.dependabot/config.yml$|^.travis.yml$}) }
21
+ exclude_patterns = [
22
+ '^(test|spec|features|examples|docs|.github)/',
23
+ '^.gitignore$',
24
+ '^.pre-commit-config.yaml$',
25
+ '^sonar-project.properties$',
26
+ '^.dependabot/config.yml$',
27
+ '^.travis.yml$',
28
+ '^CONTRIBUTING.md$',
29
+ '^Guardfile$',
30
+ '^Rakefile$',
31
+ '^yardstick.yml$',
32
+ '^rubocop.yml$'
33
+ ]
34
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(/#{exclude_patterns.join('|')}/) }
22
35
  spec.require_paths = ['lib']
23
36
 
24
37
  spec.required_ruby_version = '>= 2.4'
@@ -26,12 +39,11 @@ Gem::Specification.new do |spec|
26
39
  spec.add_dependency 'google-protobuf', '~> 3.7'
27
40
 
28
41
  spec.add_development_dependency 'bundler', '~> 2.0'
29
- spec.add_development_dependency 'coveralls', '~> 0.8'
30
42
  spec.add_development_dependency 'dotenv', '~> 2.2'
31
43
  spec.add_development_dependency 'generator_spec', '~> 0.9'
32
- spec.add_development_dependency 'rake', '~> 12.0'
44
+ spec.add_development_dependency 'rake', '~> 13.0'
33
45
  spec.add_development_dependency 'rspec', '~> 3.5'
34
- spec.add_development_dependency 'simplecov', '~> 0.13'
46
+ spec.add_development_dependency 'simplecov', '~> 0.17.1'
35
47
  spec.add_development_dependency 'webmock', '~> 3.3'
36
48
  spec.add_development_dependency 'yard', '~> 0.9'
37
49
  spec.add_development_dependency 'yardstick', '~> 0.9'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yoti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.4
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
- - Sebastian Zaremba
8
- autorequire:
7
+ - Yoti
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-01 00:00:00.000000000 Z
11
+ date: 2020-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
- - !ruby/object:Gem::Dependency
42
- name: coveralls
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.8'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.8'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: dotenv
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +72,14 @@ dependencies:
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '12.0'
75
+ version: '13.0'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '12.0'
82
+ version: '13.0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rspec
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +100,14 @@ dependencies:
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0.13'
103
+ version: 0.17.1
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0.13'
110
+ version: 0.17.1
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: webmock
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -169,19 +155,14 @@ description: |2
169
155
  with Yoti, so that your users can share their identity details with your
170
156
  application in a secure and trusted way.
171
157
  email:
172
- - tech@yoti.com
158
+ - websdk@yoti.com
173
159
  executables: []
174
160
  extensions: []
175
161
  extra_rdoc_files: []
176
162
  files:
177
- - ".github/ISSUE_TEMPLATE.md"
178
- - ".gitignore"
179
- - CONTRIBUTING.md
180
163
  - Gemfile
181
- - Guardfile
182
164
  - LICENSE.md
183
165
  - README.md
184
- - Rakefile
185
166
  - lib/generators/yoti/install/install_generator.rb
186
167
  - lib/generators/yoti/install/templates/yoti.rb
187
168
  - lib/yoti.rb
@@ -197,9 +178,66 @@ files:
197
178
  - lib/yoti/data_type/image.rb
198
179
  - lib/yoti/data_type/image_jpeg.rb
199
180
  - lib/yoti/data_type/image_png.rb
181
+ - lib/yoti/data_type/media.rb
200
182
  - lib/yoti/data_type/multi_value.rb
201
183
  - lib/yoti/data_type/profile.rb
202
184
  - lib/yoti/data_type/signed_time_stamp.rb
185
+ - lib/yoti/doc_scan/client.rb
186
+ - lib/yoti/doc_scan/constants.rb
187
+ - lib/yoti/doc_scan/errors.rb
188
+ - lib/yoti/doc_scan/session/create/create_session_result.rb
189
+ - lib/yoti/doc_scan/session/create/document_filter.rb
190
+ - lib/yoti/doc_scan/session/create/document_restrictions_filter.rb
191
+ - lib/yoti/doc_scan/session/create/notification_config.rb
192
+ - lib/yoti/doc_scan/session/create/objective/objective.rb
193
+ - lib/yoti/doc_scan/session/create/objective/proof_of_address_objective.rb
194
+ - lib/yoti/doc_scan/session/create/orthogonal_restrictions_filter.rb
195
+ - lib/yoti/doc_scan/session/create/requested_check.rb
196
+ - lib/yoti/doc_scan/session/create/requested_document_authenticity_check.rb
197
+ - lib/yoti/doc_scan/session/create/requested_face_match_check.rb
198
+ - lib/yoti/doc_scan/session/create/requested_id_document_comparison_check.rb
199
+ - lib/yoti/doc_scan/session/create/requested_liveness_check.rb
200
+ - lib/yoti/doc_scan/session/create/requested_supplementary_doc_text_extraction_task.rb
201
+ - lib/yoti/doc_scan/session/create/requested_task.rb
202
+ - lib/yoti/doc_scan/session/create/requested_text_extraction_task.rb
203
+ - lib/yoti/doc_scan/session/create/required_document.rb
204
+ - lib/yoti/doc_scan/session/create/required_id_document.rb
205
+ - lib/yoti/doc_scan/session/create/required_supplementary_document.rb
206
+ - lib/yoti/doc_scan/session/create/sdk_config.rb
207
+ - lib/yoti/doc_scan/session/create/session_specification.rb
208
+ - lib/yoti/doc_scan/session/retrieve/authenticity_check_response.rb
209
+ - lib/yoti/doc_scan/session/retrieve/breakdown_response.rb
210
+ - lib/yoti/doc_scan/session/retrieve/check_response.rb
211
+ - lib/yoti/doc_scan/session/retrieve/details_response.rb
212
+ - lib/yoti/doc_scan/session/retrieve/document_fields_response.rb
213
+ - lib/yoti/doc_scan/session/retrieve/document_id_photo_response.rb
214
+ - lib/yoti/doc_scan/session/retrieve/face_map_response.rb
215
+ - lib/yoti/doc_scan/session/retrieve/face_match_check_response.rb
216
+ - lib/yoti/doc_scan/session/retrieve/file_response.rb
217
+ - lib/yoti/doc_scan/session/retrieve/frame_response.rb
218
+ - lib/yoti/doc_scan/session/retrieve/generated_check_response.rb
219
+ - lib/yoti/doc_scan/session/retrieve/generated_media.rb
220
+ - lib/yoti/doc_scan/session/retrieve/generated_supplementary_document_text_data_check_response.rb
221
+ - lib/yoti/doc_scan/session/retrieve/generated_text_data_check_response.rb
222
+ - lib/yoti/doc_scan/session/retrieve/get_session_result.rb
223
+ - lib/yoti/doc_scan/session/retrieve/id_document_comparison_check_response.rb
224
+ - lib/yoti/doc_scan/session/retrieve/id_document_resource_response.rb
225
+ - lib/yoti/doc_scan/session/retrieve/liveness_check_response.rb
226
+ - lib/yoti/doc_scan/session/retrieve/liveness_resource_response.rb
227
+ - lib/yoti/doc_scan/session/retrieve/media_response.rb
228
+ - lib/yoti/doc_scan/session/retrieve/page_response.rb
229
+ - lib/yoti/doc_scan/session/retrieve/recommendation_response.rb
230
+ - lib/yoti/doc_scan/session/retrieve/report_response.rb
231
+ - lib/yoti/doc_scan/session/retrieve/resource_container.rb
232
+ - lib/yoti/doc_scan/session/retrieve/resource_response.rb
233
+ - lib/yoti/doc_scan/session/retrieve/supplementary_document_resource_response.rb
234
+ - lib/yoti/doc_scan/session/retrieve/supplementary_document_text_data_check_response.rb
235
+ - lib/yoti/doc_scan/session/retrieve/supplementary_document_text_extraction_task_response.rb
236
+ - lib/yoti/doc_scan/session/retrieve/task_response.rb
237
+ - lib/yoti/doc_scan/session/retrieve/text_data_check_response.rb
238
+ - lib/yoti/doc_scan/session/retrieve/text_extraction_task_response.rb
239
+ - lib/yoti/doc_scan/session/retrieve/zoom_liveness_resource_response.rb
240
+ - lib/yoti/doc_scan/support/supported_documents.rb
203
241
  - lib/yoti/dynamic_share_service/dynamic_scenario.rb
204
242
  - lib/yoti/dynamic_share_service/extension/extension.rb
205
243
  - lib/yoti/dynamic_share_service/extension/location_constraint_extension.rb
@@ -234,16 +272,14 @@ files:
234
272
  - lib/yoti/util/age_processor.rb
235
273
  - lib/yoti/util/anchor_processor.rb
236
274
  - lib/yoti/util/log.rb
275
+ - lib/yoti/util/validation.rb
237
276
  - lib/yoti/version.rb
238
- - login_flow.png
239
- - rubocop.yml
240
- - yardstick.yml
241
277
  - yoti.gemspec
242
278
  homepage: https://github.com/getyoti/yoti-ruby-sdk
243
279
  licenses:
244
280
  - MIT
245
281
  metadata: {}
246
- post_install_message:
282
+ post_install_message:
247
283
  rdoc_options: []
248
284
  require_paths:
249
285
  - lib
@@ -259,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
295
  version: '0'
260
296
  requirements: []
261
297
  rubygems_version: 3.0.6
262
- signing_key:
298
+ signing_key:
263
299
  specification_version: 4
264
300
  summary: Yoti Ruby SDK for back-end integration.
265
301
  test_files: []
@@ -1,17 +0,0 @@
1
- ---
2
- name: Custom issue template
3
- about: " There's a better way to get help!"
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- #
11
- # Wait ✋
12
- #
13
- # There's a better way to get help!
14
- #
15
- # Send your questions or issues to sdksupport@yoti.com
16
- #
17
- #
data/.gitignore DELETED
@@ -1,39 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- .env
15
-
16
- ## Documentation cache and generated files:
17
- /.yardoc/
18
- /_yardoc/
19
- /doc/
20
- /rdoc/
21
-
22
- ## Environment normalization:
23
- /.bundle/
24
- /vendor/bundle
25
- /lib/bundler/man/
26
-
27
- # for a library or gem, you might want to ignore these files since the code is
28
- # intended to run in multiple environments; otherwise, check them in:
29
- Gemfile.lock
30
- .ruby-version
31
- .ruby-gemset
32
-
33
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
- .rvmrc
35
-
36
- # Ignore Yardstick measurement files
37
- /measurement
38
- examples/rails/public/*.jpeg
39
- examples/sinatra/public/*.jpeg
@@ -1,98 +0,0 @@
1
- # Contributing
2
-
3
- After checking out the repo, run `bundle install` to install dependencies. Then, run `bundle exec rake spec` to run the tests. To install this gem onto your local machine, run `bundle exec rake install`.
4
-
5
- You can use [Guard][] to automatically run the tests every time a file in the `lib` or `spec` folder changes.
6
-
7
- Run Guard through Bundler with:
8
-
9
- ```shell
10
- bundle exec guard
11
- ```
12
-
13
- [Guard]: https://github.com/guard/guard
14
-
15
- ## Dependencies
16
-
17
- Although this gem supports Ruby 2.0.0, in order to use the latest development dependencies you have to use at least Ruby 2.2.2.
18
-
19
- ## Requirements
20
-
21
- ### Code coverage
22
-
23
- The 100% code coverage requirement must be met before submitting new code.
24
- This can be checked by opening the generated [SimpleCov][] files:
25
-
26
- ```shell
27
- open coverage/index.html
28
- ```
29
-
30
- ### Style guide
31
-
32
- The Ruby style guide is configured in the [rubocop.yml](rubocop.yml) file and can be checked by running:
33
-
34
- ```shell
35
- bundle exec rake rubocop
36
- ```
37
-
38
- ### Documentation
39
-
40
- The documentation uses the [Yard][] format. Please ensure all new classes and methods are fully documented.
41
-
42
- There are a few Rake tasks to handle documentation:
43
-
44
- ```shell
45
- bundle exec rake measurement
46
- ```
47
-
48
- Verifies the documentation with [Yardstick][] and generates the `measurement/report.txt` file, containing tips on how to improve the documentation coverage.
49
-
50
- ```shell
51
- bundle exec rake yard
52
- ```
53
-
54
- Generates [YARD][] documentation in the doc folder.
55
-
56
- ### Git
57
-
58
- Commit messages should ideally start with one of the following verbs:
59
-
60
- * Add
61
- * Merge
62
- * Fix
63
- * Remove
64
- * Improve
65
- * Use
66
-
67
- [SimpleCov]: https://github.com/colszowka/simplecov
68
- [Yard]: http://yardoc.org/
69
- [Yardstick]: https://github.com/dkubb/yardstick
70
-
71
- ## Publishing a new release
72
-
73
- * Create a new release on [GitHub](https://github.com/getyoti/yoti-ruby-sdk/releases)
74
- * Build the gem and push it to [RubyGems](https://rubygems.org/gems/yoti)
75
-
76
- ```shell
77
- rake build
78
- gem push pkg/yoti-[version].gem
79
- ```
80
-
81
- ## Submitting a pull request
82
-
83
- 1. [Fork the repository.][fork]
84
- 2. [Create a topic branch.][branch]
85
- 3. Add specs for your unimplemented feature or bug fix.
86
- 4. Run `bundle exec rake spec`. If your specs pass, return to step 3.
87
- 5. Implement your feature or bug fix.
88
- 6. Run `bundle exec rake`. If your specs fail, return to step 5.
89
- 7. Run `open coverage/index.html`. If your changes are not completely covered
90
- by your tests, return to step 3.
91
- 8. If Rubocop warns you about styling errors, correct them based on the guidelines and run `bundle exec rake rubocop` to make sure all offences are gone.
92
- 9. Add documentation for your feature or bug fix.
93
- 10. Commit and push your changes.
94
- 11. [Submit a pull request.][pr]
95
-
96
- [fork]: http://help.github.com/fork-a-repo/
97
- [branch]: http://learn.github.com/p/branching.html
98
- [pr]: http://help.github.com/send-pull-requests/