nacha 0.1.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.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.gitlab-ci.yml +13 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +42 -0
  6. data/.ruby-gemset +1 -0
  7. data/.ruby-version +1 -0
  8. data/.travis.yml +5 -0
  9. data/Gemfile +9 -0
  10. data/Guardfile +20 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +75 -0
  13. data/ROADMAP.md +56 -0
  14. data/Rakefile +6 -0
  15. data/bin/console +14 -0
  16. data/bin/setup +8 -0
  17. data/lib/nacha/aba_number.rb +44 -0
  18. data/lib/nacha/ach_date.rb +24 -0
  19. data/lib/nacha/field.rb +139 -0
  20. data/lib/nacha/numeric.rb +68 -0
  21. data/lib/nacha/parser.rb +67 -0
  22. data/lib/nacha/record/addenda_record_type.rb +29 -0
  23. data/lib/nacha/record/adv_batch_control.rb +21 -0
  24. data/lib/nacha/record/adv_entry_detail.rb +27 -0
  25. data/lib/nacha/record/adv_file_control.rb +24 -0
  26. data/lib/nacha/record/adv_file_header.rb +26 -0
  27. data/lib/nacha/record/arc_entry_detail.rb +24 -0
  28. data/lib/nacha/record/base.rb +170 -0
  29. data/lib/nacha/record/batch_control.rb +24 -0
  30. data/lib/nacha/record/batch_control_record_type.rb +21 -0
  31. data/lib/nacha/record/batch_header.rb +26 -0
  32. data/lib/nacha/record/batch_header_record_type.rb +25 -0
  33. data/lib/nacha/record/boc_entry_detail.rb +23 -0
  34. data/lib/nacha/record/ccd_addenda.rb +19 -0
  35. data/lib/nacha/record/ccd_entry_detail.rb +23 -0
  36. data/lib/nacha/record/cie_addenda.rb +19 -0
  37. data/lib/nacha/record/cie_entry_detail.rb +23 -0
  38. data/lib/nacha/record/ctx_addenda.rb +17 -0
  39. data/lib/nacha/record/ctx_corporate_entry_detail.rb +26 -0
  40. data/lib/nacha/record/detail_record_type.rb +29 -0
  41. data/lib/nacha/record/dne_addenda.rb +19 -0
  42. data/lib/nacha/record/dne_entry_detail.rb +24 -0
  43. data/lib/nacha/record/enr_addenda.rb +19 -0
  44. data/lib/nacha/record/enr_entry_detail.rb +26 -0
  45. data/lib/nacha/record/fifth_iat_addenda.rb +19 -0
  46. data/lib/nacha/record/file_control.rb +21 -0
  47. data/lib/nacha/record/file_control_record_type.rb +21 -0
  48. data/lib/nacha/record/file_header.rb +26 -0
  49. data/lib/nacha/record/file_header_record_type.rb +31 -0
  50. data/lib/nacha/record/filler.rb +13 -0
  51. data/lib/nacha/record/filler_record_type.rb +21 -0
  52. data/lib/nacha/record/first_iat_addenda.rb +22 -0
  53. data/lib/nacha/record/fourth_iat_addenda.rb +22 -0
  54. data/lib/nacha/record/iat_batch_header.rb +30 -0
  55. data/lib/nacha/record/iat_entry_detail.rb +26 -0
  56. data/lib/nacha/record/iat_foreign_coorespondent_bank_information_addenda.rb +23 -0
  57. data/lib/nacha/record/iat_remittance_information_addenda.rb +19 -0
  58. data/lib/nacha/record/mte_addenda.rb +26 -0
  59. data/lib/nacha/record/mte_entry_detail.rb +24 -0
  60. data/lib/nacha/record/pop_entry_detail.rb +26 -0
  61. data/lib/nacha/record/pos_addenda.rb +25 -0
  62. data/lib/nacha/record/pos_entry_detail.rb +24 -0
  63. data/lib/nacha/record/ppd_addenda.rb +19 -0
  64. data/lib/nacha/record/ppd_entry_detail.rb +24 -0
  65. data/lib/nacha/record/rck_entry_detail.rb +24 -0
  66. data/lib/nacha/record/second_iat_addenda.rb +20 -0
  67. data/lib/nacha/record/seventh_iat_addenda.rb +20 -0
  68. data/lib/nacha/record/shr_addenda.rb +26 -0
  69. data/lib/nacha/record/shr_entry_detail.rb +25 -0
  70. data/lib/nacha/record/sixth_iat_addenda.rb +20 -0
  71. data/lib/nacha/record/tel_entry_detail.rb +24 -0
  72. data/lib/nacha/record/third_iat_addenda.rb +20 -0
  73. data/lib/nacha/record/trc_entry_detail.rb +25 -0
  74. data/lib/nacha/record/trx_addenda.rb +19 -0
  75. data/lib/nacha/record/trx_entry_detail.rb +26 -0
  76. data/lib/nacha/record/validations/field_validations.rb +33 -0
  77. data/lib/nacha/record/validations/record_validations.rb +15 -0
  78. data/lib/nacha/record/web_addenda.rb +19 -0
  79. data/lib/nacha/record/web_entry_detail.rb +24 -0
  80. data/lib/nacha/record/xck_entry_detail.rb +25 -0
  81. data/lib/nacha/version.rb +5 -0
  82. data/lib/nacha.rb +45 -0
  83. data/nacha.gemspec +38 -0
  84. metadata +304 -0
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/addenda_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class SixthIatAddenda < Nacha::Record::Base
10
+ include AddendaRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C7', position: 1..1
13
+ nacha_field :addenda_type_code, inclusion: 'M', contents: 'C15', position: 2..3
14
+ nacha_field :receiver_identification_number, inclusion: 'O', contents: 'Alphameric', position: 4..18
15
+ nacha_field :receiver_street_address, inclusion: 'M', contents: 'Alphameric', position: 19..53
16
+ nacha_field :reserved, inclusion: 'M', contents: 'C ', position: 54..87
17
+ nacha_field :entry_detail_sequence_number, inclusion: 'M', contents: 'Numeric', position: 88..94
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/detail_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class TelEntryDetail < Nacha::Record::Base
10
+ include DetailRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C6', position: 1..1
13
+ nacha_field :transaction_code, inclusion: 'M', contents: 'Numeric', position: 2..3
14
+ nacha_field :receiving_dfi_identification, inclusion: 'M', contents: 'TTTTAAAAC', position: 4..12
15
+ nacha_field :dfi_account_number, inclusion: 'R', contents: 'Alphameric', position: 13..29
16
+ nacha_field :amount, inclusion: 'M', contents: '$$$$$$$$¢¢', position: 30..39
17
+ nacha_field :individual_identification_number, inclusion: 'O', contents: 'Alphameric', position: 40..54
18
+ nacha_field :individual_name, inclusion: 'M', contents: 'Alphameric', position: 55..76
19
+ nacha_field :payment_type_code, inclusion: 'O', contents: 'Alphameric', position: 77..78
20
+ nacha_field :addenda_record_indicator, inclusion: 'M', contents: 'Numeric', position: 79..79
21
+ nacha_field :trace_number, inclusion: 'M', contents: 'Numeric', position: 80..94
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/addenda_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class ThirdIatAddenda < Nacha::Record::Base
10
+ include AddendaRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C7', position: 1..1
13
+ nacha_field :addenda_type_code, inclusion: 'M', contents: 'C12', position: 2..3
14
+ nacha_field :originator_city_state, inclusion: 'M', contents: 'Alphameric', position: 4..38
15
+ nacha_field :originator_country_postal, inclusion: 'M', contents: 'Alphameric', position: 39..73
16
+ nacha_field :reserved, inclusion: 'M', contents: 'C ', position: 74..87
17
+ nacha_field :entry_detail_sequence_number, inclusion: 'M', contents: 'Numeric', position: 88..94
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/detail_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class TrcEntryDetail < Nacha::Record::Base
10
+ include DetailRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C6', position: 1..1
13
+ nacha_field :transaction_code, inclusion: 'M', contents: 'Numeric', position: 2..3
14
+ nacha_field :receiving_dfi_identification, inclusion: 'M', contents: 'TTTTAAAAC', position: 4..12
15
+ nacha_field :dfi_account_number, inclusion: 'R', contents: 'Alphameric', position: 13..29
16
+ nacha_field :amount, inclusion: 'M', contents: '$$$$$$$$¢¢', position: 30..39
17
+ nacha_field :check_serial_number, inclusion: 'O', contents: 'Alphameric', position: 40..54
18
+ nacha_field :process_control_field, inclusion: 'M', contents: 'Alphameric', position: 55..60
19
+ nacha_field :item_research_number, inclusion: 'R', contents: 'Alphameric', position: 61..76
20
+ nacha_field :item_type_indicator, inclusion: 'O', contents: 'Alphameric', position: 77..78
21
+ nacha_field :addenda_record_indicator, inclusion: 'M', contents: 'Numeric', position: 79..79
22
+ nacha_field :trace_number, inclusion: 'M', contents: 'Numeric', position: 80..94
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/addenda_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class TrxAddenda < Nacha::Record::Base
10
+ include AddendaRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C7', position: 1..1
13
+ nacha_field :addenda_type_code, inclusion: 'M', contents: 'C05', position: 2..3
14
+ nacha_field :payment_related_information, inclusion: 'O', contents: 'Alphameric', position: 4..83
15
+ nacha_field :addenda_sequence_number, inclusion: 'M', contents: 'Numeric', position: 84..87
16
+ nacha_field :entry_detail_sequence_number, inclusion: 'M', contents: 'Numeric', position: 88..94
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/detail_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class TrxEntryDetail < Nacha::Record::Base
10
+ include DetailRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C6', position: 1..1
13
+ nacha_field :transaction_code, inclusion: 'M', contents: 'Numeric', position: 2..3
14
+ nacha_field :receiving_dfi_identification, inclusion: 'M', contents: 'TTTTAAAAC', position: 4..12
15
+ nacha_field :dfi_account_number, inclusion: 'R', contents: 'Alphameric', position: 13..29
16
+ nacha_field :total_amount, inclusion: 'M', contents: '$$$$$$$$¢¢', position: 30..39
17
+ nacha_field :identification_number, inclusion: 'O', contents: 'Alphameric', position: 40..54
18
+ nacha_field :number_of_addenda_records, inclusion: 'M', contents: 'Numeric', position: 55..58
19
+ nacha_field :receiving_company_name_id_number, inclusion: 'R', contents: 'Alphameric', position: 59..74
20
+ nacha_field :reserved, inclusion: 'M', contents: 'C ', position: 75..76
21
+ nacha_field :item_type_indicator, inclusion: 'O', contents: 'Alphameric', position: 77..78
22
+ nacha_field :addenda_record_indicator, inclusion: 'M', contents: 'Numeric', position: 79..79
23
+ nacha_field :trace_number, inclusion: 'M', contents: 'Numeric', position: 80..94
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Nacha
5
+ module Record
6
+ module FieldValidations
7
+ def self.included(base)
8
+ base.extend ClassMethods
9
+ end
10
+ module ClassMethods
11
+ def check_field_error(field, message = nil, condition = nil)
12
+ (block_given? ? yield : condition) || (field.add_error("'#{field.data}' is invalid") && false)
13
+ end
14
+
15
+ def valid_service_class_code(field)
16
+ check_field_error(field) { SERVICE_CLASS_CODES.include? field.to_s }
17
+ end
18
+
19
+ def valid_standard_entry_class_code(field)
20
+ check_field_error(field) { STANDARD_ENTRY_CLASS_CODES.include? field.data }
21
+ end
22
+
23
+ def valid_transaction_code(field)
24
+ check_field_error(field) { TRANSACTION_CODES.include? field.to_s }
25
+ end
26
+
27
+ def valid_receiving_dfi_identification(field)
28
+ check_field_error(field) { field.valid? }
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,15 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Nacha
5
+ module Record
6
+ module RecordValidations
7
+ def self.included(base)
8
+ base.extend ClassMethods
9
+ end
10
+
11
+ module ClassMethods
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/addenda_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class WebAddenda < Nacha::Record::Base
10
+ include AddendaRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C7', position: 1..1
13
+ nacha_field :addenda_type_code, inclusion: 'M', contents: 'C05', position: 2..3
14
+ nacha_field :payment_related_information, inclusion: 'O', contents: 'Alphameric', position: 4..83
15
+ nacha_field :addenda_sequence_number, inclusion: 'M', contents: 'Numeric', position: 84..87
16
+ nacha_field :entry_detail_sequence_number, inclusion: 'M', contents: 'Numeric', position: 88..94
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/detail_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class WebEntryDetail < Nacha::Record::Base
10
+ include DetailRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C6', position: 1..1
13
+ nacha_field :transaction_code, inclusion: 'M', contents: 'Numeric', position: 2..3
14
+ nacha_field :receiving_dfi_identification, inclusion: 'M', contents: 'TTTTAAAAC', position: 4..12
15
+ nacha_field :dfi_account_number, inclusion: 'R', contents: 'Alphameric', position: 13..29
16
+ nacha_field :amount, inclusion: 'M', contents: '$$$$$$$$¢¢', position: 30..39
17
+ nacha_field :individual_identification_number, inclusion: 'O', contents: 'Alphameric', position: 40..54
18
+ nacha_field :individual_name, inclusion: 'R', contents: 'Alphameric', position: 55..76
19
+ nacha_field :payment_type_code, inclusion: 'O', contents: 'Alphameric', position: 77..78
20
+ nacha_field :addenda_record_indicator, inclusion: 'M', contents: 'Numeric', position: 79..79
21
+ nacha_field :trace_number, inclusion: 'M', contents: 'Numeric', position: 80..94
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'nacha/record/base.rb'
5
+ require 'nacha/record/detail_record_type.rb'
6
+
7
+ module Nacha
8
+ module Record
9
+ class XckEntryDetail < Nacha::Record::Base
10
+ include DetailRecordType
11
+
12
+ nacha_field :record_type_code, inclusion: 'M', contents: 'C6', position: 1..1
13
+ nacha_field :transaction_code, inclusion: 'M', contents: 'Numeric', position: 2..3
14
+ nacha_field :receiving_dfi_identification, inclusion: 'M', contents: 'TTTTAAAAC', position: 4..12
15
+ nacha_field :dfi_account_number, inclusion: 'R', contents: 'Alphameric', position: 13..29
16
+ nacha_field :amount, inclusion: 'M', contents: '$$$$$$$$¢¢', position: 30..39
17
+ nacha_field :check_serial_number, inclusion: 'O', contents: 'Alphameric', position: 40..54
18
+ nacha_field :process_control_field, inclusion: 'M', contents: 'Alphameric', position: 55..60
19
+ nacha_field :item_research_number, inclusion: 'R', contents: 'Alphameric', position: 61..76
20
+ nacha_field :discretionary_data, inclusion: 'O', contents: 'Alphameric', position: 77..78
21
+ nacha_field :addenda_record_indicator, inclusion: 'M', contents: 'Numeric', position: 79..79
22
+ nacha_field :trace_number, inclusion: 'M', contents: 'Numeric', position: 80..94
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nacha
4
+ VERSION = '0.1.0'
5
+ end
data/lib/nacha.rb ADDED
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'nacha/version'
4
+ require 'yaml'
5
+ require 'nacha/aba_number'
6
+ require 'nacha/ach_date'
7
+ require 'nacha/field'
8
+ require 'nacha/numeric'
9
+
10
+ Dir['lib/nacha/record/*.rb'].each do |file|
11
+ require File.expand_path(file)
12
+ end
13
+
14
+ Dir['lib/nacha/record/**/*.rb'].each do |file|
15
+ require File.expand_path(file)
16
+ end
17
+
18
+ require 'nacha/parser'
19
+
20
+ module Nacha
21
+ STANDARD_ENTRY_CLASS_CODES = %w[ACK ADV ARC ATX BOC CCD PPD CIE
22
+ COR CTX DNE ENR IAT POP POS SHR
23
+ MTE RCK TEL TRC TRX WEB XCK].freeze
24
+
25
+ SERVICE_CLASS_CODES = %w[200 220 225 280].freeze
26
+
27
+ CREDIT_TRANSACTION_CODES = %w[20 21 22 23 24 30 31 32 33 34 41 42
28
+ 43 44 51 52 53 54 81 83 85 87].freeze
29
+ DEBIT_TRANSACTION_CODES = %w[25 26 27 28 29 35 36 37 38 39 46 47
30
+ 48 49 55 56 82 84 86 88].freeze
31
+
32
+ TRANSACTION_CODES = (CREDIT_TRANSACTION_CODES + DEBIT_TRANSACTION_CODES).freeze
33
+
34
+ def self.record_name(str)
35
+ underscore(str.to_s).split('/').last
36
+ end
37
+
38
+ def self.underscore(str)
39
+ str.gsub(/::/, '/')
40
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
41
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
42
+ .tr('-', '_')
43
+ .downcase
44
+ end
45
+ end
data/nacha.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'nacha/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "nacha"
9
+ spec.version = Nacha::VERSION
10
+ spec.authors = ["David H. Wilkins"]
11
+ spec.email = ["dwilkins@conecuh.com"]
12
+
13
+ spec.summary = %q(Ruby parser for ACH files.)
14
+ spec.description = %q(Ruby parser for ACH files.)
15
+ spec.homepage = 'https://github.com/dwilkins/nacha'
16
+ spec.license = 'MIT'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(test|spec|features)/})
20
+ end
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
24
+
25
+ spec.add_development_dependency "bundler", "~> 2.0"
26
+ spec.add_development_dependency "byebug"
27
+ spec.add_development_dependency "factory_bot"
28
+ spec.add_development_dependency "gitlab-styles"
29
+ spec.add_development_dependency "guard"
30
+ spec.add_development_dependency "guard-rspec"
31
+ spec.add_development_dependency "pry", "~> 0.10"
32
+ spec.add_development_dependency "pry-doc", "~> 0.10"
33
+ spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "rspec", "~> 3.0"
35
+ spec.add_development_dependency "rubocop", '~> 0.69.0'
36
+ spec.add_development_dependency 'rubocop-performance', '~> 1.1.0'
37
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.22.1'
38
+ end
metadata ADDED
@@ -0,0 +1,304 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nacha
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David H. Wilkins
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: bundler
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: byebug
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: factory_bot
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: gitlab-styles
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: guard
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: guard-rspec
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: pry
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.10'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.10'
110
+ - !ruby/object:Gem::Dependency
111
+ name: pry-doc
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.10'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.10'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rake
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '10.0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '10.0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rspec
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rubocop
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 0.69.0
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.69.0
166
+ - !ruby/object:Gem::Dependency
167
+ name: rubocop-performance
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 1.1.0
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 1.1.0
180
+ - !ruby/object:Gem::Dependency
181
+ name: rubocop-rspec
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: 1.22.1
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: 1.22.1
194
+ description: Ruby parser for ACH files.
195
+ email:
196
+ - dwilkins@conecuh.com
197
+ executables: []
198
+ extensions: []
199
+ extra_rdoc_files: []
200
+ files:
201
+ - ".gitignore"
202
+ - ".gitlab-ci.yml"
203
+ - ".rspec"
204
+ - ".rubocop.yml"
205
+ - ".ruby-gemset"
206
+ - ".ruby-version"
207
+ - ".travis.yml"
208
+ - Gemfile
209
+ - Guardfile
210
+ - LICENSE.txt
211
+ - README.md
212
+ - ROADMAP.md
213
+ - Rakefile
214
+ - bin/console
215
+ - bin/setup
216
+ - lib/nacha.rb
217
+ - lib/nacha/aba_number.rb
218
+ - lib/nacha/ach_date.rb
219
+ - lib/nacha/field.rb
220
+ - lib/nacha/numeric.rb
221
+ - lib/nacha/parser.rb
222
+ - lib/nacha/record/addenda_record_type.rb
223
+ - lib/nacha/record/adv_batch_control.rb
224
+ - lib/nacha/record/adv_entry_detail.rb
225
+ - lib/nacha/record/adv_file_control.rb
226
+ - lib/nacha/record/adv_file_header.rb
227
+ - lib/nacha/record/arc_entry_detail.rb
228
+ - lib/nacha/record/base.rb
229
+ - lib/nacha/record/batch_control.rb
230
+ - lib/nacha/record/batch_control_record_type.rb
231
+ - lib/nacha/record/batch_header.rb
232
+ - lib/nacha/record/batch_header_record_type.rb
233
+ - lib/nacha/record/boc_entry_detail.rb
234
+ - lib/nacha/record/ccd_addenda.rb
235
+ - lib/nacha/record/ccd_entry_detail.rb
236
+ - lib/nacha/record/cie_addenda.rb
237
+ - lib/nacha/record/cie_entry_detail.rb
238
+ - lib/nacha/record/ctx_addenda.rb
239
+ - lib/nacha/record/ctx_corporate_entry_detail.rb
240
+ - lib/nacha/record/detail_record_type.rb
241
+ - lib/nacha/record/dne_addenda.rb
242
+ - lib/nacha/record/dne_entry_detail.rb
243
+ - lib/nacha/record/enr_addenda.rb
244
+ - lib/nacha/record/enr_entry_detail.rb
245
+ - lib/nacha/record/fifth_iat_addenda.rb
246
+ - lib/nacha/record/file_control.rb
247
+ - lib/nacha/record/file_control_record_type.rb
248
+ - lib/nacha/record/file_header.rb
249
+ - lib/nacha/record/file_header_record_type.rb
250
+ - lib/nacha/record/filler.rb
251
+ - lib/nacha/record/filler_record_type.rb
252
+ - lib/nacha/record/first_iat_addenda.rb
253
+ - lib/nacha/record/fourth_iat_addenda.rb
254
+ - lib/nacha/record/iat_batch_header.rb
255
+ - lib/nacha/record/iat_entry_detail.rb
256
+ - lib/nacha/record/iat_foreign_coorespondent_bank_information_addenda.rb
257
+ - lib/nacha/record/iat_remittance_information_addenda.rb
258
+ - lib/nacha/record/mte_addenda.rb
259
+ - lib/nacha/record/mte_entry_detail.rb
260
+ - lib/nacha/record/pop_entry_detail.rb
261
+ - lib/nacha/record/pos_addenda.rb
262
+ - lib/nacha/record/pos_entry_detail.rb
263
+ - lib/nacha/record/ppd_addenda.rb
264
+ - lib/nacha/record/ppd_entry_detail.rb
265
+ - lib/nacha/record/rck_entry_detail.rb
266
+ - lib/nacha/record/second_iat_addenda.rb
267
+ - lib/nacha/record/seventh_iat_addenda.rb
268
+ - lib/nacha/record/shr_addenda.rb
269
+ - lib/nacha/record/shr_entry_detail.rb
270
+ - lib/nacha/record/sixth_iat_addenda.rb
271
+ - lib/nacha/record/tel_entry_detail.rb
272
+ - lib/nacha/record/third_iat_addenda.rb
273
+ - lib/nacha/record/trc_entry_detail.rb
274
+ - lib/nacha/record/trx_addenda.rb
275
+ - lib/nacha/record/trx_entry_detail.rb
276
+ - lib/nacha/record/validations/field_validations.rb
277
+ - lib/nacha/record/validations/record_validations.rb
278
+ - lib/nacha/record/web_addenda.rb
279
+ - lib/nacha/record/web_entry_detail.rb
280
+ - lib/nacha/record/xck_entry_detail.rb
281
+ - lib/nacha/version.rb
282
+ - nacha.gemspec
283
+ homepage: https://github.com/dwilkins/nacha
284
+ licenses:
285
+ - MIT
286
+ metadata: {}
287
+ rdoc_options: []
288
+ require_paths:
289
+ - lib
290
+ required_ruby_version: !ruby/object:Gem::Requirement
291
+ requirements:
292
+ - - ">="
293
+ - !ruby/object:Gem::Version
294
+ version: '0'
295
+ required_rubygems_version: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ requirements: []
301
+ rubygems_version: 3.6.7
302
+ specification_version: 4
303
+ summary: Ruby parser for ACH files.
304
+ test_files: []