truemail-client 0.1.0 → 0.3.1

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.
@@ -5,16 +5,20 @@ module Truemail
5
5
  class Http
6
6
  require 'uri'
7
7
  require 'net/http'
8
+ require 'json'
8
9
 
9
- URI_ATTRS = %i[secure_connection host port email].freeze
10
+ URI_ATTRS = %i[secure_connection host port endpoint uri_params].freeze
10
11
  USER_AGENT = 'Truemail Ruby client'
11
12
  MIME_TYPE = 'application/json'
13
+ VALIDATION_ENDPOINT = '/'
14
+ HEALTHCHECK_ENDPOINT = '/healthcheck'
12
15
 
13
- def initialize(email)
14
- Truemail::Client::Http::URI_ATTRS[0..-2].each do |attribute|
16
+ def initialize(endpoint = Truemail::Client::Http::VALIDATION_ENDPOINT, **uri_params)
17
+ Truemail::Client::Http::URI_ATTRS[0..2].each do |attribute|
15
18
  instance_variable_set(:"@#{attribute}", Truemail::Client.configuration.public_send(attribute))
16
19
  end
17
- @email = email
20
+ @endpoint = endpoint
21
+ @uri_params = uri_params
18
22
  end
19
23
 
20
24
  def run
@@ -23,7 +27,9 @@ module Truemail
23
27
  request['User-Agent'] = Truemail::Client::Http::USER_AGENT
24
28
  request['Accept'] = Truemail::Client::Http::MIME_TYPE
25
29
  request['Content-Type'] = Truemail::Client::Http::MIME_TYPE
26
- request['Authorization'] = Truemail::Client.configuration.token
30
+ unless endpoint.eql?(Truemail::Client::Http::HEALTHCHECK_ENDPOINT)
31
+ request['Authorization'] = Truemail::Client.configuration.token
32
+ end
27
33
  http.request(request)
28
34
  end.body
29
35
  rescue => error
@@ -34,8 +40,15 @@ module Truemail
34
40
 
35
41
  attr_reader(*Truemail::Client::Http::URI_ATTRS)
36
42
 
43
+ def request_uri
44
+ URI::HTTP.build(
45
+ path: endpoint,
46
+ query: uri_params.empty? ? nil : URI.encode_www_form(uri_params)
47
+ ).request_uri
48
+ end
49
+
37
50
  def uri
38
- @uri ||= URI("#{secure_connection ? 'https' : 'http'}://#{host}:#{port}/?email=#{email}")
51
+ @uri ||= URI("#{secure_connection ? 'https' : 'http'}://#{host}:#{port}#{request_uri}")
39
52
  end
40
53
  end
41
54
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Truemail
4
4
  module Client
5
- VERSION = '0.1.0'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
@@ -16,6 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/truemail-rb/truemail-ruby-client'
17
17
  spec.license = 'MIT'
18
18
 
19
+ spec.metadata = {
20
+ 'homepage_uri' => 'https://truemail-rb.org',
21
+ 'changelog_uri' => 'https://github.com/truemail-rb/truemail-ruby-client/blob/master/CHANGELOG.md',
22
+ 'source_code_uri' => 'https://github.com/truemail-rb/truemail-ruby-client',
23
+ 'documentation_uri' => 'https://truemail-rb.org/truemail-ruby-client',
24
+ 'bug_tracker_uri' => 'https://github.com/truemail-rb/truemail-ruby-client/issues'
25
+ }
26
+
19
27
  spec.required_ruby_version = '>= 2.5.0'
20
28
 
21
29
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -24,18 +32,18 @@ Gem::Specification.new do |spec|
24
32
  spec.require_paths = ['lib']
25
33
 
26
34
  spec.add_development_dependency 'bundler', '~> 1.16'
27
- spec.add_development_dependency 'bundler-audit', '~> 0.6.1'
28
- spec.add_development_dependency 'fasterer', '~> 0.8.2'
29
- spec.add_development_dependency 'ffaker', '~> 2.14'
35
+ spec.add_development_dependency 'bundler-audit', '~> 0.8.0'
36
+ spec.add_development_dependency 'faker', '~> 2.17'
37
+ spec.add_development_dependency 'fasterer', '~> 0.9.0'
30
38
  spec.add_development_dependency 'json_matchers', '~> 0.11.1'
31
- spec.add_development_dependency 'overcommit', '~> 0.52.1'
32
- spec.add_development_dependency 'pry-byebug', '~> 3.8'
33
- spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
34
- spec.add_development_dependency 'reek', '~> 5.6'
35
- spec.add_development_dependency 'rspec', '~> 3.9'
36
- spec.add_development_dependency 'rubocop', '~> 0.80.1'
37
- spec.add_development_dependency 'rubocop-performance', '~> 1.5', '>= 1.5.2'
38
- spec.add_development_dependency 'rubocop-rspec', '~> 1.38', '>= 1.38.1'
39
+ spec.add_development_dependency 'overcommit', '~> 0.57.0'
40
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
41
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.3'
42
+ spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.4'
43
+ spec.add_development_dependency 'rspec', '~> 3.10'
44
+ spec.add_development_dependency 'rubocop', '~> 1.14'
45
+ spec.add_development_dependency 'rubocop-performance', '~> 1.11', '>= 1.11.3'
46
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
39
47
  spec.add_development_dependency 'simplecov', '~> 0.17.1'
40
- spec.add_development_dependency 'webmock', '~> 3.8', '>= 3.8.3'
48
+ spec.add_development_dependency 'webmock', '~> 3.12', '>= 3.12.2'
41
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: truemail-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladislav Trotsenko
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-29 00:00:00.000000000 Z
11
+ date: 2021-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,42 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.6.1
33
+ version: 0.8.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.6.1
40
+ version: 0.8.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: fasterer
42
+ name: faker
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.2
47
+ version: '2.17'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.2
54
+ version: '2.17'
55
55
  - !ruby/object:Gem::Dependency
56
- name: ffaker
56
+ name: fasterer
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.14'
61
+ version: 0.9.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.14'
68
+ version: 0.9.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json_matchers
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.52.1
89
+ version: 0.57.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.52.1
96
+ version: 0.57.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry-byebug
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.8'
103
+ version: '3.9'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.8'
110
+ version: '3.9'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +117,7 @@ dependencies:
117
117
  version: '13.0'
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 13.0.1
120
+ version: 13.0.3
121
121
  type: :development
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
@@ -127,89 +127,89 @@ dependencies:
127
127
  version: '13.0'
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 13.0.1
130
+ version: 13.0.3
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: reek
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '5.6'
137
+ version: '6.0'
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 6.0.4
138
141
  type: :development
139
142
  prerelease: false
140
143
  version_requirements: !ruby/object:Gem::Requirement
141
144
  requirements:
142
145
  - - "~>"
143
146
  - !ruby/object:Gem::Version
144
- version: '5.6'
147
+ version: '6.0'
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: 6.0.4
145
151
  - !ruby/object:Gem::Dependency
146
152
  name: rspec
147
153
  requirement: !ruby/object:Gem::Requirement
148
154
  requirements:
149
155
  - - "~>"
150
156
  - !ruby/object:Gem::Version
151
- version: '3.9'
157
+ version: '3.10'
152
158
  type: :development
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
162
  - - "~>"
157
163
  - !ruby/object:Gem::Version
158
- version: '3.9'
164
+ version: '3.10'
159
165
  - !ruby/object:Gem::Dependency
160
166
  name: rubocop
161
167
  requirement: !ruby/object:Gem::Requirement
162
168
  requirements:
163
169
  - - "~>"
164
170
  - !ruby/object:Gem::Version
165
- version: 0.80.1
171
+ version: '1.14'
166
172
  type: :development
167
173
  prerelease: false
168
174
  version_requirements: !ruby/object:Gem::Requirement
169
175
  requirements:
170
176
  - - "~>"
171
177
  - !ruby/object:Gem::Version
172
- version: 0.80.1
178
+ version: '1.14'
173
179
  - !ruby/object:Gem::Dependency
174
180
  name: rubocop-performance
175
181
  requirement: !ruby/object:Gem::Requirement
176
182
  requirements:
177
183
  - - "~>"
178
184
  - !ruby/object:Gem::Version
179
- version: '1.5'
185
+ version: '1.11'
180
186
  - - ">="
181
187
  - !ruby/object:Gem::Version
182
- version: 1.5.2
188
+ version: 1.11.3
183
189
  type: :development
184
190
  prerelease: false
185
191
  version_requirements: !ruby/object:Gem::Requirement
186
192
  requirements:
187
193
  - - "~>"
188
194
  - !ruby/object:Gem::Version
189
- version: '1.5'
195
+ version: '1.11'
190
196
  - - ">="
191
197
  - !ruby/object:Gem::Version
192
- version: 1.5.2
198
+ version: 1.11.3
193
199
  - !ruby/object:Gem::Dependency
194
200
  name: rubocop-rspec
195
201
  requirement: !ruby/object:Gem::Requirement
196
202
  requirements:
197
203
  - - "~>"
198
204
  - !ruby/object:Gem::Version
199
- version: '1.38'
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- version: 1.38.1
205
+ version: '2.3'
203
206
  type: :development
204
207
  prerelease: false
205
208
  version_requirements: !ruby/object:Gem::Requirement
206
209
  requirements:
207
210
  - - "~>"
208
211
  - !ruby/object:Gem::Version
209
- version: '1.38'
210
- - - ">="
211
- - !ruby/object:Gem::Version
212
- version: 1.38.1
212
+ version: '2.3'
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: simplecov
215
215
  requirement: !ruby/object:Gem::Requirement
@@ -230,20 +230,20 @@ dependencies:
230
230
  requirements:
231
231
  - - "~>"
232
232
  - !ruby/object:Gem::Version
233
- version: '3.8'
233
+ version: '3.12'
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
- version: 3.8.3
236
+ version: 3.12.2
237
237
  type: :development
238
238
  prerelease: false
239
239
  version_requirements: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: '3.8'
243
+ version: '3.12'
244
244
  - - ">="
245
245
  - !ruby/object:Gem::Version
246
- version: 3.8.3
246
+ version: 3.12.2
247
247
  description: Truemail web API client library for Ruby
248
248
  email:
249
249
  - admin@bestweb.com.ua
@@ -253,7 +253,11 @@ extra_rdoc_files: []
253
253
  files:
254
254
  - ".circleci/config.yml"
255
255
  - ".codeclimate.yml"
256
- - ".github/ISSUE_TEMPLATE.md"
256
+ - ".github/BRANCH_NAMING_CONVENTION.md"
257
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
258
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
259
+ - ".github/ISSUE_TEMPLATE/issue_report.md"
260
+ - ".github/ISSUE_TEMPLATE/question.md"
257
261
  - ".github/PULL_REQUEST_TEMPLATE.md"
258
262
  - ".gitignore"
259
263
  - ".overcommit.yml"
@@ -280,8 +284,13 @@ files:
280
284
  homepage: https://github.com/truemail-rb/truemail-ruby-client
281
285
  licenses:
282
286
  - MIT
283
- metadata: {}
284
- post_install_message:
287
+ metadata:
288
+ homepage_uri: https://truemail-rb.org
289
+ changelog_uri: https://github.com/truemail-rb/truemail-ruby-client/blob/master/CHANGELOG.md
290
+ source_code_uri: https://github.com/truemail-rb/truemail-ruby-client
291
+ documentation_uri: https://truemail-rb.org/truemail-ruby-client
292
+ bug_tracker_uri: https://github.com/truemail-rb/truemail-ruby-client/issues
293
+ post_install_message:
285
294
  rdoc_options: []
286
295
  require_paths:
287
296
  - lib
@@ -296,9 +305,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
305
  - !ruby/object:Gem::Version
297
306
  version: '0'
298
307
  requirements: []
299
- rubyforge_project:
300
- rubygems_version: 2.7.9
301
- signing_key:
308
+ rubyforge_project:
309
+ rubygems_version: 2.7.3
310
+ signing_key:
302
311
  specification_version: 4
303
312
  summary: truemail-client
304
313
  test_files: []