sepa_reason_codes 1.0.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.
- checksums.yaml +7 -0
- data/.circleci/config.yml +39 -0
- data/.gitignore +9 -0
- data/.rspec +3 -0
- data/.rubocop.yml +4 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +53 -0
- data/LICENSE.txt +21 -0
- data/README.md +70 -0
- data/Rakefile +8 -0
- data/bin/console +8 -0
- data/bin/setup +8 -0
- data/lib/reason_codes.yml +1153 -0
- data/lib/sepa_reason_codes.rb +61 -0
- data/lib/sepa_reason_codes/version.rb +5 -0
- data/sepa_reason_codes.gemspec +32 -0
- metadata +103 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'sepa_reason_codes/version'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
# Usage:
|
7
|
+
#
|
8
|
+
# SepaReasonCodes.find('AC01')
|
9
|
+
#
|
10
|
+
# @returns ReasonCodeStruct{
|
11
|
+
# code: 'AC01',
|
12
|
+
# iso_name: '',
|
13
|
+
# description: '',
|
14
|
+
# probable_status: ''
|
15
|
+
# }
|
16
|
+
|
17
|
+
module SepaReasonCodes
|
18
|
+
class Error < StandardError; end
|
19
|
+
|
20
|
+
ParsedReasonCodes =
|
21
|
+
YAML.load_file(File.join(__dir__, ['reason_codes.yml'])).freeze
|
22
|
+
|
23
|
+
ReasonCodeStruct =
|
24
|
+
Struct.new(:code, :iso_name, :description, :probable_status)
|
25
|
+
|
26
|
+
# @param ~String~ Sepa Reason Code; Case insensitive
|
27
|
+
# Read more at : https://www.hettwer-beratung.de/sepa-spezialwissen/sepa-reason-codes/
|
28
|
+
|
29
|
+
# Parses lib/reason_codes.yml, retrieves and
|
30
|
+
# returns ReasonCode Struct with accessors
|
31
|
+
# code, iso_name, description, probable_status
|
32
|
+
|
33
|
+
def self.find(code)
|
34
|
+
reason_code =
|
35
|
+
ParsedReasonCodes.fetch(code&.upcase, nil)
|
36
|
+
|
37
|
+
return unless reason_code
|
38
|
+
|
39
|
+
reason_code_struct(reason_code)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @returns collection [reason_code]
|
43
|
+
|
44
|
+
def self.all
|
45
|
+
ParsedReasonCodes.values.map do |reason_code|
|
46
|
+
reason_code_struct(reason_code)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.reason_code_struct(reason_code)
|
51
|
+
ReasonCodeStruct.new(
|
52
|
+
reason_code.fetch('code'),
|
53
|
+
reason_code.fetch('iso_name'),
|
54
|
+
reason_code.fetch('description'),
|
55
|
+
reason_code.fetch('probable_status')
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
private_constant :ParsedReasonCodes
|
60
|
+
private_class_method :reason_code_struct
|
61
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/sepa_reason_codes/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'sepa_reason_codes'
|
7
|
+
spec.version = SepaReasonCodes::VERSION
|
8
|
+
spec.authors = ['Sahil Gadimbayli']
|
9
|
+
spec.email = ['hi@ramblingcode.dev']
|
10
|
+
|
11
|
+
spec.summary = 'Minimal, plain old ruby gem to work with Sepa Reason Codes.'
|
12
|
+
spec.homepage = 'https://github.com/ramblingcode/sepa-reason-codes'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
15
|
+
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
17
|
+
spec.metadata['source_code_uri'] = 'https://github.com/ramblingcode/sepa-reason-codes'
|
18
|
+
|
19
|
+
# Specify which files should be added to the gem when it is released.
|
20
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
21
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
23
|
+
end
|
24
|
+
|
25
|
+
spec.bindir = 'exe'
|
26
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
|
+
spec.require_paths = ['lib']
|
28
|
+
|
29
|
+
spec.add_development_dependency 'rake'
|
30
|
+
spec.add_development_dependency 'rspec'
|
31
|
+
spec.add_development_dependency 'rubocop'
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sepa_reason_codes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sahil Gadimbayli
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-05-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- hi@ramblingcode.dev
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".circleci/config.yml"
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".rubocop.yml"
|
66
|
+
- CODE_OF_CONDUCT.md
|
67
|
+
- Gemfile
|
68
|
+
- Gemfile.lock
|
69
|
+
- LICENSE.txt
|
70
|
+
- README.md
|
71
|
+
- Rakefile
|
72
|
+
- bin/console
|
73
|
+
- bin/setup
|
74
|
+
- lib/reason_codes.yml
|
75
|
+
- lib/sepa_reason_codes.rb
|
76
|
+
- lib/sepa_reason_codes/version.rb
|
77
|
+
- sepa_reason_codes.gemspec
|
78
|
+
homepage: https://github.com/ramblingcode/sepa-reason-codes
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata:
|
82
|
+
homepage_uri: https://github.com/ramblingcode/sepa-reason-codes
|
83
|
+
source_code_uri: https://github.com/ramblingcode/sepa-reason-codes
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 2.3.0
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubygems_version: 3.0.3
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: Minimal, plain old ruby gem to work with Sepa Reason Codes.
|
103
|
+
test_files: []
|