eml 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|