truemail-client 0.1.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed0062cf7b8d5dffcda7197b78c35693e0e3c6fc35e69c01948de4a8bf2e4df8
4
- data.tar.gz: c5f1c8249883336d12c4c0c9248f9fb3725a055333b2f5bde49fa86180439e56
3
+ metadata.gz: c1b42e36e9d9d70a91dd951c594d3b3afc3ee8815ed3a50fbaa4b179b0488b59
4
+ data.tar.gz: 4af09437d71822e86365eb59cef631b52f3ddf2d49db65d528949296f904d780
5
5
  SHA512:
6
- metadata.gz: f18bb396644f028cb9b2d269fe9bf44c52ff3378443d6b795b64939763736a3610467d40dd4b2365aef9d8bc2d94c0cd37993040e06ad14c447b97de2b75160c
7
- data.tar.gz: 2de0b0b9a3f3efa114c3960c7adf221ac381304e5d38b744c604c1f8e9a68d023a9c9a143190f09a0f231befffd62c98874a93f626f9c588478864e4f21bcc9a
6
+ metadata.gz: 162f18138f8764672e8e416c5f30f46a63092aadde2d7592bf828be002991632dba30b184c0873764c9802032b605b8c43ab9609993a95de407425bd9c051c58
7
+ data.tar.gz: 4296b7edb2acc4a22be663bc2c14ba5b0af3375e3ddcf5d5419ce80c3c7fb6849e19792430e4e6c34369c500f6e7b76bdca6a8d38ba27921e22ab2d1572cac5b
@@ -4,7 +4,7 @@
4
4
 
5
5
  - [ ] I have updated truemail-ruby-client to the latest version
6
6
  - [ ] I have read the [Contribution Guidelines](https://github.com/truemail-rb/truemail-ruby-client/blob/master/CONTRIBUTING.md)
7
- - [ ] I have read the [documentation](https://github.com/truemail-rb/truemail-ruby-client/blob/master/README.md)
7
+ - [ ] I have read the [documentation](https://truemail-rb.org/truemail-ruby-client)
8
8
  - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail-ruby-client/issues)
9
9
 
10
10
  ### Issue Description
@@ -2,6 +2,21 @@
2
2
 
3
3
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## [0.2.0] - 2020-10-04
6
+
7
+ ### Added
8
+
9
+ Ability to use Truemail healthcheck endpoint
10
+
11
+ - Added `Truemail::Client.server_healthy?`
12
+
13
+ ### Changed
14
+
15
+ - Updated `Truemail::Client::Http#uri`
16
+ - Updated gem dependencies
17
+ - Updated gem documentation
18
+ - Updated gem version
19
+
5
20
  ## [0.1.1] - 2020-07-21
6
21
 
7
22
  ### Changed
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- truemail-client (0.1.1)
4
+ truemail-client (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,15 +1,19 @@
1
- # <img src='https://repository-images.githubusercontent.com/246571655/128eda80-63af-11ea-8a0e-d1a7b9043c29' height='250' alt='Truemail web API client library for Ruby' />
1
+ # ![Truemail web API client library for Ruby](https://repository-images.githubusercontent.com/246571655/128eda80-63af-11ea-8a0e-d1a7b9043c29)
2
2
 
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/ccc7167f4f49d4a10146/maintainability)](https://codeclimate.com/github/truemail-rb/truemail-ruby-client/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/ccc7167f4f49d4a10146/test_coverage)](https://codeclimate.com/github/truemail-rb/truemail-ruby-client/test_coverage) [![CircleCI](https://circleci.com/gh/truemail-rb/truemail-ruby-client/tree/develop.svg?style=svg)](https://circleci.com/gh/truemail-rb/truemail-ruby-client/tree/develop) [![Gem Version](https://badge.fury.io/rb/truemail-client.svg)](https://badge.fury.io/rb/truemail-client) [![Downloads](https://img.shields.io/gem/dt/truemail-client.svg?colorA=004d99&colorB=0073e6)](https://rubygems.org/gems/truemail-client) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
4
4
 
5
5
  `truemail-client` gem - [Truemail web API](https://github.com/truemail-rb/truemail-rack) client library for Ruby.
6
6
 
7
+
8
+ > Actual and maintainable documentation :books: for developers is living [here](https://truemail-rb.org/truemail-ruby-client).
9
+
7
10
  ## Table of Contents
8
11
 
9
12
  - [Installation](#installation)
10
13
  - [Usage](#usage)
11
14
  - [Setting global configuration](#setting-global-configuration)
12
15
  - [Establishing connection with Truemail API](#establishing-connection-with-truemail-api)
16
+ - [Checking server health status](#checking-server-health-status)
13
17
  - [Additional features](#additional-features)
14
18
  - [Truemail family](#truemail-family)
15
19
  - [Contributing](#contributing)
@@ -92,6 +96,16 @@ Truemail::Client.validate('admin@bestweb.com.ua')
92
96
  }
93
97
  ```
94
98
 
99
+ ### Checking server health status
100
+
101
+ After successful configuration, you can check health-status of Truemail server.
102
+
103
+ ```ruby
104
+ Truemail::Client.server_healthy?
105
+
106
+ => true
107
+ ```
108
+
95
109
  ### Additional features
96
110
 
97
111
  #### Read global configuration
@@ -136,7 +150,7 @@ Truemail::Client.configuration
136
150
 
137
151
  ## Truemail family
138
152
 
139
- All Truemail extensions: https://github.com/truemail-rb
153
+ All Truemail extensions: https://truemail-rb.org
140
154
 
141
155
  | Name | Type | Description |
142
156
  | --- | --- | --- |
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'truemail/client/version'
4
- require 'truemail/client/configuration'
5
- require 'truemail/client/http'
3
+ require_relative '../truemail/client/version'
4
+ require_relative '../truemail/client/configuration'
5
+ require_relative '../truemail/client/http'
6
6
 
7
7
  module Truemail
8
8
  module Client
@@ -29,7 +29,12 @@ module Truemail
29
29
 
30
30
  def validate(email)
31
31
  raise_unless(Truemail::Client.configuration, Truemail::Client::NOT_CONFIGURED)
32
- Truemail::Client::Http.new(email).run
32
+ Truemail::Client::Http.new(email: email).run
33
+ end
34
+
35
+ def server_healthy?
36
+ raise_unless(Truemail::Client.configuration, Truemail::Client::NOT_CONFIGURED)
37
+ Truemail::Client::Http.new(Truemail::Client::Http::HEALTHCHECK_ENDPOINT).run.empty?
33
38
  end
34
39
 
35
40
  private
@@ -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
@@ -34,8 +38,15 @@ module Truemail
34
38
 
35
39
  attr_reader(*Truemail::Client::Http::URI_ATTRS)
36
40
 
41
+ def request_uri
42
+ URI::HTTP.build(
43
+ path: endpoint,
44
+ query: uri_params.empty? ? nil : URI.encode_www_form(uri_params)
45
+ ).request_uri.gsub(/%40/, '@') # TODO: should be removed after new Truemail server release with encoding uri param values
46
+ end
47
+
37
48
  def uri
38
- @uri ||= URI("#{secure_connection ? 'https' : 'http'}://#{host}:#{port}/?email=#{email}")
49
+ @uri ||= URI("#{secure_connection ? 'https' : 'http'}://#{host}:#{port}#{request_uri}")
39
50
  end
40
51
  end
41
52
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Truemail
4
4
  module Client
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.0'
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)/}) }
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.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladislav Trotsenko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-21 00:00:00.000000000 Z
11
+ date: 2020-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -280,7 +280,12 @@ files:
280
280
  homepage: https://github.com/truemail-rb/truemail-ruby-client
281
281
  licenses:
282
282
  - MIT
283
- metadata: {}
283
+ metadata:
284
+ homepage_uri: https://truemail-rb.org
285
+ changelog_uri: https://github.com/truemail-rb/truemail-ruby-client/blob/master/CHANGELOG.md
286
+ source_code_uri: https://github.com/truemail-rb/truemail-ruby-client
287
+ documentation_uri: https://truemail-rb.org/truemail-ruby-client
288
+ bug_tracker_uri: https://github.com/truemail-rb/truemail-ruby-client/issues
284
289
  post_install_message:
285
290
  rdoc_options: []
286
291
  require_paths: