eml 1.0.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 +7 -0
- data/.editorconfig +10 -0
- data/.env.example +6 -0
- data/.gitignore +5 -0
- data/.rspec +5 -0
- data/.rubocop.yml +90 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +87 -0
- data/eml.gemspec +37 -0
- data/lib/eml.rb +22 -0
- data/lib/eml/config.rb +49 -0
- data/lib/eml/data/countries.rb +260 -0
- data/lib/eml/data/currencies.rb +176 -0
- data/lib/eml/data/states.rb +4055 -0
- data/lib/eml/environment.rb +54 -0
- data/lib/eml/error.rb +25 -0
- data/lib/eml/error/rest.rb +42 -0
- data/lib/eml/error/rest/authentication.rb +21 -0
- data/lib/eml/error/rest/bad_request.rb +20 -0
- data/lib/eml/error/rest/daily_funding_limit.rb +19 -0
- data/lib/eml/error/rest/forbidden.rb +20 -0
- data/lib/eml/error/rest/internal_server.rb +9 -0
- data/lib/eml/error/rest/not_found.rb +20 -0
- data/lib/eml/error/rest/unprocessable_entity.rb +20 -0
- data/lib/eml/lib/endpoint_class.rb +42 -0
- data/lib/eml/parameters.rb +153 -0
- data/lib/eml/payload.rb +137 -0
- data/lib/eml/response.rb +103 -0
- data/lib/eml/uk.rb +51 -0
- data/lib/eml/uk/api_resource.rb +94 -0
- data/lib/eml/uk/config.rb +52 -0
- data/lib/eml/uk/lib/endpoint_class.rb +19 -0
- data/lib/eml/uk/lib/parse_date.rb +35 -0
- data/lib/eml/uk/model/transaction.rb +56 -0
- data/lib/eml/uk/parameters.rb +99 -0
- data/lib/eml/uk/parameters/agreement/show.rb +22 -0
- data/lib/eml/uk/parameters/card/activation.rb +24 -0
- data/lib/eml/uk/parameters/card/lock.rb +26 -0
- data/lib/eml/uk/parameters/card/register.rb +24 -0
- data/lib/eml/uk/parameters/card/reload.rb +24 -0
- data/lib/eml/uk/parameters/card/show.rb +102 -0
- data/lib/eml/uk/parameters/card/transaction.rb +59 -0
- data/lib/eml/uk/parameters/card/unload.rb +26 -0
- data/lib/eml/uk/parameters/card/unlock.rb +26 -0
- data/lib/eml/uk/parameters/card/void.rb +26 -0
- data/lib/eml/uk/payload.rb +94 -0
- data/lib/eml/uk/payload/agreement/show.rb +46 -0
- data/lib/eml/uk/payload/card/activation.rb +73 -0
- data/lib/eml/uk/payload/card/lock.rb +34 -0
- data/lib/eml/uk/payload/card/register.rb +70 -0
- data/lib/eml/uk/payload/card/reload.rb +38 -0
- data/lib/eml/uk/payload/card/show.rb +12 -0
- data/lib/eml/uk/payload/card/transaction.rb +12 -0
- data/lib/eml/uk/payload/card/unload.rb +38 -0
- data/lib/eml/uk/payload/card/unlock.rb +23 -0
- data/lib/eml/uk/payload/card/void.rb +23 -0
- data/lib/eml/uk/payload/contactentity.rb +64 -0
- data/lib/eml/uk/payload/iso.rb +48 -0
- data/lib/eml/uk/payload/location.rb +30 -0
- data/lib/eml/uk/resources/agreement.rb +32 -0
- data/lib/eml/uk/resources/card.rb +181 -0
- data/lib/eml/uk/response.rb +29 -0
- data/lib/eml/uk/responses/agreement/show.rb +16 -0
- data/lib/eml/uk/responses/card/reload.rb +19 -0
- data/lib/eml/uk/responses/card/show.rb +53 -0
- data/lib/eml/uk/responses/card/transaction.rb +24 -0
- data/lib/eml/version.rb +6 -0
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/addressable.rbi +198 -0
- data/sorbet/rbi/gems/ast.rbi +47 -0
- data/sorbet/rbi/gems/concurrent-ruby.rbi +218 -0
- data/sorbet/rbi/gems/crack.rbi +47 -0
- data/sorbet/rbi/gems/docile.rbi +31 -0
- data/sorbet/rbi/gems/domain_name.rbi +51 -0
- data/sorbet/rbi/gems/dotenv.rbi +67 -0
- data/sorbet/rbi/gems/faker.rbi +1350 -0
- data/sorbet/rbi/gems/hashdiff.rbi +65 -0
- data/sorbet/rbi/gems/http-cookie.rbi +92 -0
- data/sorbet/rbi/gems/http-form_data.rbi +73 -0
- data/sorbet/rbi/gems/http.rbi +609 -0
- data/sorbet/rbi/gems/http_parser.rb.rbi +36 -0
- data/sorbet/rbi/gems/i18n.rbi +191 -0
- data/sorbet/rbi/gems/jaro_winkler.rbi +14 -0
- data/sorbet/rbi/gems/parallel.rbi +81 -0
- data/sorbet/rbi/gems/parser.rbi +835 -0
- data/sorbet/rbi/gems/public_suffix.rbi +103 -0
- data/sorbet/rbi/gems/rainbow.rbi +117 -0
- data/sorbet/rbi/gems/rspec-core.rbi +1655 -0
- data/sorbet/rbi/gems/rspec-support.rbi +126 -0
- data/sorbet/rbi/gems/rspec.rbi +14 -0
- data/sorbet/rbi/gems/rubocop-performance.rbi +276 -0
- data/sorbet/rbi/gems/rubocop-rspec.rbi +860 -0
- data/sorbet/rbi/gems/rubocop.rbi +6943 -0
- data/sorbet/rbi/gems/ruby-progressbar.rbi +304 -0
- data/sorbet/rbi/gems/simplecov-html.rbi +30 -0
- data/sorbet/rbi/gems/simplecov.rbi +225 -0
- data/sorbet/rbi/gems/unf.rbi +18 -0
- data/sorbet/rbi/gems/unicode-display_width.rbi +16 -0
- data/sorbet/rbi/gems/vcr.rbi +503 -0
- data/sorbet/rbi/gems/webmock.rbi +521 -0
- data/sorbet/rbi/hidden-definitions/errors.txt +4802 -0
- data/sorbet/rbi/hidden-definitions/hidden.rbi +10700 -0
- data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8682 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
- data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
- data/sorbet/rbi/todo.rbi +24 -0
- data/spec/config_spec.rb +26 -0
- data/spec/helpers/config_helper.rb +21 -0
- data/spec/helpers/vcr_helper.rb +19 -0
- data/spec/spec_helper.rb +120 -0
- data/spec/uk/api_resource_spec.rb +39 -0
- data/spec/uk/resources/agreement_spec.rb +23 -0
- data/spec/uk/resources/card_spec.rb +197 -0
- metadata +339 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 30ad0813939d2523225e35e0696d13fedacc43a17151257d979607fb89dc61e1
|
|
4
|
+
data.tar.gz: ffc2484a9269e9996d11e91ab308498ba33d1e8a6201a55fdda3c6145e2f339d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: dd60379793b8c4e2ad4c266e46c102cd42713aa6f947da825e5e4d0f500a6d44adef6ff1ba01ff6117ff162b39d5bbfe27b6ef189e9a0d6d5dde8afc1831f35a
|
|
7
|
+
data.tar.gz: 1aee829d0b399f6809c92f30f6c22cfe9791ccf15374a222548877ef2bd8ccc1b58f40c82715cf9aa006c3fbcc679542b584ea5442b88eea2ae036213d103390
|
data/.editorconfig
ADDED
data/.env.example
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require:
|
|
2
|
+
- rubocop-performance
|
|
3
|
+
- rubocop-rspec
|
|
4
|
+
|
|
5
|
+
AllCops:
|
|
6
|
+
TargetRubyVersion: 2.6.4
|
|
7
|
+
|
|
8
|
+
Layout/AlignParameters:
|
|
9
|
+
EnforcedStyle: with_fixed_indentation
|
|
10
|
+
|
|
11
|
+
Layout/DotPosition:
|
|
12
|
+
EnforcedStyle: trailing
|
|
13
|
+
|
|
14
|
+
Layout/EndAlignment:
|
|
15
|
+
AutoCorrect: true
|
|
16
|
+
EnforcedStyleAlignWith: variable
|
|
17
|
+
|
|
18
|
+
Layout/IndentFirstArrayElement:
|
|
19
|
+
EnforcedStyle: consistent
|
|
20
|
+
|
|
21
|
+
Layout/MultilineMethodCallIndentation:
|
|
22
|
+
EnforcedStyle: indented
|
|
23
|
+
|
|
24
|
+
Layout/MultilineOperationIndentation:
|
|
25
|
+
EnforcedStyle: indented
|
|
26
|
+
|
|
27
|
+
Lint/AmbiguousBlockAssociation:
|
|
28
|
+
Exclude:
|
|
29
|
+
- spec/**/*
|
|
30
|
+
|
|
31
|
+
Metrics/BlockLength:
|
|
32
|
+
Exclude:
|
|
33
|
+
- spec/**/*
|
|
34
|
+
|
|
35
|
+
RSpec/BeforeAfterAll:
|
|
36
|
+
Enabled: false
|
|
37
|
+
|
|
38
|
+
RSpec/ExampleLength:
|
|
39
|
+
Max: 10
|
|
40
|
+
|
|
41
|
+
RSpec/MultipleExpectations:
|
|
42
|
+
Enabled: false
|
|
43
|
+
|
|
44
|
+
RSpec/NestedGroups:
|
|
45
|
+
Max: 4
|
|
46
|
+
|
|
47
|
+
RSpec/FilePath:
|
|
48
|
+
Enabled: false
|
|
49
|
+
|
|
50
|
+
Security/Eval:
|
|
51
|
+
Enabled: false
|
|
52
|
+
|
|
53
|
+
Style/Documentation:
|
|
54
|
+
Enabled: false
|
|
55
|
+
|
|
56
|
+
Style/GuardClause:
|
|
57
|
+
Enabled: false
|
|
58
|
+
|
|
59
|
+
Style/LambdaCall:
|
|
60
|
+
Enabled: false
|
|
61
|
+
|
|
62
|
+
Style/NegatedIf:
|
|
63
|
+
Enabled: false
|
|
64
|
+
|
|
65
|
+
Style/OptionalArguments:
|
|
66
|
+
Exclude:
|
|
67
|
+
- lib/eml/error/**/*
|
|
68
|
+
|
|
69
|
+
Style/RaiseArgs:
|
|
70
|
+
Enabled: false
|
|
71
|
+
|
|
72
|
+
Style/Send:
|
|
73
|
+
Enabled: true
|
|
74
|
+
|
|
75
|
+
Style/StringLiterals:
|
|
76
|
+
EnforcedStyle: double_quotes
|
|
77
|
+
|
|
78
|
+
Style/StringLiteralsInInterpolation:
|
|
79
|
+
EnforcedStyle: double_quotes
|
|
80
|
+
|
|
81
|
+
Style/TrailingCommaInArrayLiteral:
|
|
82
|
+
EnforcedStyleForMultiline: consistent_comma
|
|
83
|
+
|
|
84
|
+
Style/TrailingCommaInHashLiteral:
|
|
85
|
+
EnforcedStyleForMultiline: consistent_comma
|
|
86
|
+
|
|
87
|
+
Style/TrivialAccessors:
|
|
88
|
+
Exclude:
|
|
89
|
+
- lib/eml/uk/payload.rb
|
|
90
|
+
- lib/eml/uk/payload/**/*
|
data/Gemfile
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019- Morning Coffee Pty Ltd (https://morningcoffee.com.au)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# EML API integration library for Ruby
|
|
2
|
+
|
|
3
|
+
The EML API integration library provides convenient access to EML's REST Web
|
|
4
|
+
Services and Transaction Notification Service for applications written in
|
|
5
|
+
the Ruby language.
|
|
6
|
+
|
|
7
|
+
Version 1 supports the UK APIs with Australian support coming as existing code
|
|
8
|
+
is extracted.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
You don't need this source code unless you want to modify the gem. If you just
|
|
13
|
+
want to use the package, just include the following in your Gemfile:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
gem "eml", github: "MorningCoffeeDev/eml_ruby"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If you are debugging or developing this gem and wish to use it within the
|
|
20
|
+
context of an existing application, modify your Gemfile to read:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
gem "eml", path: "../path_to_gem"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Requirements
|
|
27
|
+
|
|
28
|
+
- Ruby 2.6+ (untested in prior versions)
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
Each geographical region is a separate module and will need to be configured
|
|
33
|
+
with your supplied credentials.
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
require "eml"
|
|
37
|
+
|
|
38
|
+
EML::UK.configure do |config|
|
|
39
|
+
config.username = "username"
|
|
40
|
+
config.password = "password"
|
|
41
|
+
config.merchant_group = "merchant_id"
|
|
42
|
+
config.program = "program_id"
|
|
43
|
+
end
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Make sure you never commit your credentials to git. If you are using Ruby on
|
|
47
|
+
Rails, it is usually best to keep your secrets in your
|
|
48
|
+
[credentials file]: https://edgeguides.rubyonrails.org/security.html#custom-credentials
|
|
49
|
+
|
|
50
|
+
## Development
|
|
51
|
+
|
|
52
|
+
Since it is necessary to authenticate with EML to test API resources,
|
|
53
|
+
credentials and a test card ID are required. The dotenv gem is loaded when tests
|
|
54
|
+
are run and will look for a .env file in the root directory. A .env.example file
|
|
55
|
+
has been supplied so you copy it to .env and replace the example values:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
cp .env.example .env
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The .env file has been added to the .gitignore list and should never been
|
|
62
|
+
commited to the repository.
|
|
63
|
+
|
|
64
|
+
Run all tests:
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
bundle exec rspec
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Run a single test suite:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
bundle exec rspec spec/path/to/file.rb
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Run a single test, include the line number:
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
bundle exec rspec spec/path/to/file.rb:123
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Please ensure that all changes have been run by the Rubocop before creating a
|
|
83
|
+
pull request:
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
bundle exec rubocop
|
|
87
|
+
```
|
data/eml.gemspec
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.unshift(::File.join(::File.dirname(__FILE__), "lib"))
|
|
4
|
+
|
|
5
|
+
require "eml/version"
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |s|
|
|
8
|
+
s.name = "eml"
|
|
9
|
+
s.version = EML::VERSION
|
|
10
|
+
s.required_ruby_version = ">= 2.6.0"
|
|
11
|
+
s.summary = "Ruby bindings for the EML API"
|
|
12
|
+
s.description = "Connect to the EML payments APIs and " \
|
|
13
|
+
"Transaction Notification Serices"
|
|
14
|
+
s.author = "Morning Coffee"
|
|
15
|
+
s.email = "developers@morningcoffee.com.au"
|
|
16
|
+
s.homepage = "https://github.com/MorningCoffeeDev/eml_ruby"
|
|
17
|
+
s.license = "MIT"
|
|
18
|
+
|
|
19
|
+
s.files = `git ls-files`.split("\n")
|
|
20
|
+
s.test_files = `git ls-files -- test/*`.split("\n")
|
|
21
|
+
s.require_paths = ["lib"]
|
|
22
|
+
|
|
23
|
+
s.add_dependency "http", "~> 4.0.0"
|
|
24
|
+
s.add_dependency "sorbet-runtime"
|
|
25
|
+
|
|
26
|
+
s.add_development_dependency "dotenv"
|
|
27
|
+
s.add_development_dependency "faker"
|
|
28
|
+
s.add_development_dependency "pry-byebug"
|
|
29
|
+
s.add_development_dependency "rspec", "~> 3.8"
|
|
30
|
+
s.add_development_dependency "rubocop", "~> 0.71"
|
|
31
|
+
s.add_development_dependency "rubocop-performance"
|
|
32
|
+
s.add_development_dependency "rubocop-rspec"
|
|
33
|
+
s.add_development_dependency "simplecov"
|
|
34
|
+
s.add_development_dependency "sorbet"
|
|
35
|
+
s.add_development_dependency "vcr"
|
|
36
|
+
s.add_development_dependency "webmock"
|
|
37
|
+
end
|
data/lib/eml.rb
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "http"
|
|
5
|
+
require "sorbet-runtime"
|
|
6
|
+
|
|
7
|
+
module EML
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require "eml/data/countries"
|
|
11
|
+
require "eml/data/currencies"
|
|
12
|
+
require "eml/data/states"
|
|
13
|
+
|
|
14
|
+
require "eml/config"
|
|
15
|
+
require "eml/environment"
|
|
16
|
+
require "eml/error"
|
|
17
|
+
require "eml/lib/endpoint_class"
|
|
18
|
+
require "eml/parameters"
|
|
19
|
+
require "eml/payload"
|
|
20
|
+
require "eml/response"
|
|
21
|
+
require "eml/uk"
|
|
22
|
+
require "eml/version"
|
data/lib/eml/config.rb
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# typed: ignore
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module EML
|
|
5
|
+
class Config
|
|
6
|
+
extend T::Sig
|
|
7
|
+
|
|
8
|
+
sig { returns(EML::Environment.class) }
|
|
9
|
+
def environment
|
|
10
|
+
EML::Environment
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
sig { params(value: Symbol).void }
|
|
14
|
+
def environment=(value)
|
|
15
|
+
EML::Environment.set(value)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
sig { params(param: Symbol).returns(String) }
|
|
19
|
+
def require(param)
|
|
20
|
+
value = public_send(param)
|
|
21
|
+
return value unless value.nil? || value.empty?
|
|
22
|
+
|
|
23
|
+
require_error(param)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
sig { params(param: Symbol).returns(String) }
|
|
27
|
+
def require_parameter(param)
|
|
28
|
+
require(param)
|
|
29
|
+
rescue ArgumentError => e
|
|
30
|
+
message = e.message + "\n" \
|
|
31
|
+
"Alternatively, you can pass dynamic values with your request " \
|
|
32
|
+
"parameters"
|
|
33
|
+
raise ArgumentError, message
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
|
|
38
|
+
sig { params(param: Symbol).void }
|
|
39
|
+
def require_error(param)
|
|
40
|
+
raise(
|
|
41
|
+
ArgumentError,
|
|
42
|
+
"#{param} is required but hasn't been set.\n" \
|
|
43
|
+
"EML::Config.configuration do |config|\n" +
|
|
44
|
+
%( config.#{param} = "value") + "\n" \
|
|
45
|
+
"end"
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# rubocop:disable Metrics/ModuleLength
|
|
5
|
+
# rubocop:disable Style/AsciiComments
|
|
6
|
+
module EML
|
|
7
|
+
COUNTRIES = T.let(
|
|
8
|
+
[
|
|
9
|
+
"ABW", # Aruba
|
|
10
|
+
"AFG", # Afghanistan
|
|
11
|
+
"AGO", # Angola
|
|
12
|
+
"AIA", # Anguilla
|
|
13
|
+
"ALA", # Åland Islands
|
|
14
|
+
"ALB", # Albania
|
|
15
|
+
"AND", # Andorra
|
|
16
|
+
"ANT", # Netherlands Antilles
|
|
17
|
+
"ARE", # United Arab Emirates
|
|
18
|
+
"ARG", # Argentina
|
|
19
|
+
"ARM", # Armenia
|
|
20
|
+
"ASM", # American Samoa
|
|
21
|
+
"ATA", # Antarctica
|
|
22
|
+
"ATF", # French Southern Territories
|
|
23
|
+
"ATG", # Antigua and Barbuda
|
|
24
|
+
"AUS", # Australia
|
|
25
|
+
"AUT", # Austria
|
|
26
|
+
"AZE", # Azerbaijan
|
|
27
|
+
"BDI", # Burundi
|
|
28
|
+
"BEL", # Belgium
|
|
29
|
+
"BEN", # Benin
|
|
30
|
+
"BFA", # Burkina Faso
|
|
31
|
+
"BGD", # Bangladesh
|
|
32
|
+
"BGR", # Bulgaria
|
|
33
|
+
"BHR", # Bahrain
|
|
34
|
+
"BHS", # Bahamas
|
|
35
|
+
"BIH", # Bosnia and Herzegovina
|
|
36
|
+
"BLM", # Saint Barthélemy
|
|
37
|
+
"BLR", # Belarus
|
|
38
|
+
"BLZ", # Belize
|
|
39
|
+
"BMU", # Bermuda
|
|
40
|
+
"BOL", # Bolivia, Plurinational State of
|
|
41
|
+
"BRA", # Brazil
|
|
42
|
+
"BRB", # Barbados
|
|
43
|
+
"BRN", # Brunei Darussalam
|
|
44
|
+
"BTN", # Bhutan
|
|
45
|
+
"BVT", # Bouvet Island
|
|
46
|
+
"BWA", # Botswana
|
|
47
|
+
"CAF", # Central African Republic
|
|
48
|
+
"CAN", # Canada
|
|
49
|
+
"CCK", # Cocos (Keeling) Islands
|
|
50
|
+
"CHE", # Switzerland
|
|
51
|
+
"CHL", # Chile
|
|
52
|
+
"CHN", # China
|
|
53
|
+
"CIV", # Côte d'Ivoire
|
|
54
|
+
"CMR", # Cameroon
|
|
55
|
+
"COD", # Congo, the Democratic Republic of the
|
|
56
|
+
"COG", # Congo
|
|
57
|
+
"COK", # Cook Islands
|
|
58
|
+
"COL", # Colombia
|
|
59
|
+
"COM", # Comoros
|
|
60
|
+
"CPV", # Cape Verde
|
|
61
|
+
"CRI", # Costa Rica
|
|
62
|
+
"CUB", # Cuba
|
|
63
|
+
"CXR", # Christmas Island
|
|
64
|
+
"CYM", # Cayman Islands
|
|
65
|
+
"CYP", # Cyprus
|
|
66
|
+
"CZE", # Czech Republic
|
|
67
|
+
"DEU", # Germany
|
|
68
|
+
"DJI", # Djibouti
|
|
69
|
+
"DMA", # Dominica
|
|
70
|
+
"DNK", # Denmark
|
|
71
|
+
"DOM", # Dominican Republic
|
|
72
|
+
"DZA", # Algeria
|
|
73
|
+
"ECU", # Ecuador
|
|
74
|
+
"EGY", # Egypt
|
|
75
|
+
"ERI", # Eritrea
|
|
76
|
+
"ESH", # Western Sahara
|
|
77
|
+
"ESP", # Spain
|
|
78
|
+
"EST", # Estonia
|
|
79
|
+
"ETH", # Ethiopia
|
|
80
|
+
"FIN", # Finland
|
|
81
|
+
"FJI", # Fiji
|
|
82
|
+
"FLK", # Falkland Islands (Malvinas)
|
|
83
|
+
"FRA", # France
|
|
84
|
+
"FRO", # Faroe Islands
|
|
85
|
+
"FSM", # Micronesia, Federated States of
|
|
86
|
+
"GAB", # Gabon
|
|
87
|
+
"GBR", # United Kingdom
|
|
88
|
+
"GEO", # Georgia
|
|
89
|
+
"GGY", # Guernsey
|
|
90
|
+
"GHA", # Ghana
|
|
91
|
+
"GIB", # Gibraltar
|
|
92
|
+
"GIN", # Guinea
|
|
93
|
+
"GLP", # Guadeloupe
|
|
94
|
+
"GMB", # Gambia
|
|
95
|
+
"GNB", # Guinea-Bissau
|
|
96
|
+
"GNQ", # Equatorial Guinea
|
|
97
|
+
"GRC", # Greece
|
|
98
|
+
"GRD", # Grenada
|
|
99
|
+
"GRL", # Greenland
|
|
100
|
+
"GTM", # Guatemala
|
|
101
|
+
"GUF", # French Guiana
|
|
102
|
+
"GUM", # Guam
|
|
103
|
+
"GUY", # Guyana
|
|
104
|
+
"HKG", # Hong Kong
|
|
105
|
+
"HMD", # Heard Island and McDonald Islands
|
|
106
|
+
"HND", # Honduras
|
|
107
|
+
"HRV", # Croatia
|
|
108
|
+
"HTI", # Haiti
|
|
109
|
+
"HUN", # Hungary
|
|
110
|
+
"IDN", # Indonesia
|
|
111
|
+
"IMN", # Isle of Man
|
|
112
|
+
"IND", # India
|
|
113
|
+
"IOT", # British Indian Ocean Territory
|
|
114
|
+
"IRL", # Ireland
|
|
115
|
+
"IRN", # Iran, Islamic Republic of
|
|
116
|
+
"IRQ", # Iraq
|
|
117
|
+
"ISL", # Iceland
|
|
118
|
+
"ISR", # Israel
|
|
119
|
+
"ITA", # Italy
|
|
120
|
+
"JAM", # Jamaica
|
|
121
|
+
"JEY", # Jersey
|
|
122
|
+
"JOR", # Jordan
|
|
123
|
+
"JPN", # Japan
|
|
124
|
+
"KAZ", # Kazakhstan
|
|
125
|
+
"KEN", # Kenya
|
|
126
|
+
"KGZ", # Kyrgyzstan
|
|
127
|
+
"KHM", # Cambodia
|
|
128
|
+
"KIR", # Kiribati
|
|
129
|
+
"KNA", # Saint Kitts and Nevis
|
|
130
|
+
"KOR", # Korea, Republic of
|
|
131
|
+
"KWT", # Kuwait
|
|
132
|
+
"LAO", # Lao People's Democratic Republic
|
|
133
|
+
"LBN", # Lebanon
|
|
134
|
+
"LBR", # Liberia
|
|
135
|
+
"LBY", # Libyan Arab Jamahiriya
|
|
136
|
+
"LCA", # Saint Lucia
|
|
137
|
+
"LIE", # Liechtenstein
|
|
138
|
+
"LKA", # Sri Lanka
|
|
139
|
+
"LSO", # Lesotho
|
|
140
|
+
"LTU", # Lithuania
|
|
141
|
+
"LUX", # Luxembourg
|
|
142
|
+
"LVA", # Latvia
|
|
143
|
+
"MAC", # Macao
|
|
144
|
+
"MAF", # Saint Martin (French part)
|
|
145
|
+
"MAR", # Morocco
|
|
146
|
+
"MCO", # Monaco
|
|
147
|
+
"MDA", # Moldova, Republic of
|
|
148
|
+
"MDG", # Madagascar
|
|
149
|
+
"MDV", # Maldives
|
|
150
|
+
"MEX", # Mexico
|
|
151
|
+
"MHL", # Marshall Islands
|
|
152
|
+
"MKD", # Macedonia, the former Yugoslav Republic of
|
|
153
|
+
"MLI", # Mali
|
|
154
|
+
"MLT", # Malta
|
|
155
|
+
"MMR", # Myanmar
|
|
156
|
+
"MNE", # Montenegro
|
|
157
|
+
"MNG", # Mongolia
|
|
158
|
+
"MNP", # Northern Mariana Islands
|
|
159
|
+
"MOZ", # Mozambique
|
|
160
|
+
"MRT", # Mauritania
|
|
161
|
+
"MSR", # Montserrat
|
|
162
|
+
"MTQ", # Martinique
|
|
163
|
+
"MUS", # Mauritius
|
|
164
|
+
"MWI", # Malawi
|
|
165
|
+
"MYS", # Malaysia
|
|
166
|
+
"MYT", # Mayotte
|
|
167
|
+
"NAM", # Namibia
|
|
168
|
+
"NCL", # New Caledonia
|
|
169
|
+
"NER", # Niger
|
|
170
|
+
"NFK", # Norfolk Island
|
|
171
|
+
"NGA", # Nigeria
|
|
172
|
+
"NIC", # Nicaragua
|
|
173
|
+
"NIU", # Niue
|
|
174
|
+
"NLD", # Netherlands
|
|
175
|
+
"NOR", # Norway
|
|
176
|
+
"NPL", # Nepal
|
|
177
|
+
"NRU", # Nauru
|
|
178
|
+
"NZL", # New Zealand
|
|
179
|
+
"OMN", # Oman
|
|
180
|
+
"PAK", # Pakistan
|
|
181
|
+
"PAN", # Panama
|
|
182
|
+
"PCN", # Pitcairn
|
|
183
|
+
"PER", # Peru
|
|
184
|
+
"PHL", # Philippines
|
|
185
|
+
"PLW", # Palau
|
|
186
|
+
"PNG", # Papua New Guinea
|
|
187
|
+
"POL", # Poland
|
|
188
|
+
"PRI", # Puerto Rico
|
|
189
|
+
"PRK", # Korea, Democratic People's Republic of
|
|
190
|
+
"PRT", # Portugal
|
|
191
|
+
"PRY", # Paraguay
|
|
192
|
+
"PSE", # Palestinian Territory, Occupied
|
|
193
|
+
"PYF", # French Polynesia
|
|
194
|
+
"QAT", # Qatar
|
|
195
|
+
"REU", # Réunion
|
|
196
|
+
"ROU", # Romania
|
|
197
|
+
"RUS", # Russian Federation
|
|
198
|
+
"RWA", # Rwanda
|
|
199
|
+
"SAU", # Saudi Arabia
|
|
200
|
+
"SDN", # Sudan
|
|
201
|
+
"SEN", # Senegal
|
|
202
|
+
"SGP", # Singapore
|
|
203
|
+
"SGS", # South Georgia and the South Sandwich Islands
|
|
204
|
+
"SHN", # Saint Helena, Ascension and Tristan da Cunha
|
|
205
|
+
"SJM", # Svalbard and Jan Mayen
|
|
206
|
+
"SLB", # Solomon Islands
|
|
207
|
+
"SLE", # Sierra Leone
|
|
208
|
+
"SLV", # El Salvador
|
|
209
|
+
"SMR", # San Marino
|
|
210
|
+
"SOM", # Somalia
|
|
211
|
+
"SPM", # Saint Pierre and Miquelon
|
|
212
|
+
"SRB", # Serbia
|
|
213
|
+
"STP", # Sao Tome and Principe
|
|
214
|
+
"SUR", # Suriname
|
|
215
|
+
"SVK", # Slovakia
|
|
216
|
+
"SVN", # Slovenia
|
|
217
|
+
"SWE", # Sweden
|
|
218
|
+
"SWZ", # Swaziland
|
|
219
|
+
"SYC", # Seychelles
|
|
220
|
+
"SYR", # Syrian Arab Republic
|
|
221
|
+
"TCA", # Turks and Caicos Islands
|
|
222
|
+
"TCD", # Chad
|
|
223
|
+
"TGO", # Togo
|
|
224
|
+
"THA", # Thailand
|
|
225
|
+
"TJK", # Tajikistan
|
|
226
|
+
"TKL", # Tokelau
|
|
227
|
+
"TKM", # Turkmenistan
|
|
228
|
+
"TLS", # Timor-Leste
|
|
229
|
+
"TON", # Tonga
|
|
230
|
+
"TTO", # Trinidad and Tobago
|
|
231
|
+
"TUN", # Tunisia
|
|
232
|
+
"TUR", # Turkey
|
|
233
|
+
"TUV", # Tuvalu
|
|
234
|
+
"TWN", # Taiwan, Province of China
|
|
235
|
+
"TZA", # Tanzania, United Republic of
|
|
236
|
+
"UGA", # Uganda
|
|
237
|
+
"UKR", # Ukraine
|
|
238
|
+
"UMI", # United States Minor Outlying Islands
|
|
239
|
+
"URY", # Uruguay
|
|
240
|
+
"USA", # United States
|
|
241
|
+
"UZB", # Uzbekistan
|
|
242
|
+
"VAT", # Holy See (Vatican City State)
|
|
243
|
+
"VCT", # Saint Vincent and the Grenadines
|
|
244
|
+
"VEN", # Venezuela, Bolivarian Republic of
|
|
245
|
+
"VGB", # Virgin Islands, British
|
|
246
|
+
"VIR", # Virgin Islands, U.S.
|
|
247
|
+
"VNM", # Viet Nam
|
|
248
|
+
"VUT", # Vanuatu
|
|
249
|
+
"WLF", # Wallis and Futuna
|
|
250
|
+
"WSM", # Samoa
|
|
251
|
+
"YEM", # Yemen
|
|
252
|
+
"ZAF", # South Africa
|
|
253
|
+
"ZMB", # Zambia
|
|
254
|
+
"ZWE", # Zimbabwe
|
|
255
|
+
].freeze,
|
|
256
|
+
T::Array[String]
|
|
257
|
+
)
|
|
258
|
+
end
|
|
259
|
+
# rubocop:enable Metrics/ModuleLength
|
|
260
|
+
# rubocop:enable Style/AsciiComments
|